【发布时间】:2012-04-29 22:22:32
【问题描述】:
我有一个包含用户集合的 ObservableCollection
class User
{
public int Id{ get; set; }
public UserType UserType{ get; set; }
}
还有一个枚举
enum UserType
{
Admin,
Moderator,
User,
Guest
}
然后我有一个名为 UserTypeMap 的枚举映射器,可以从 ViewModel 访问
public class UserListViewModel : INotifyPropertyChanged
{
......
public ObservableCollection<User> Users
{
get{ return this.users; }
set{ this.users = value; this.InvokePropertyChanged( "Users" );
}
public IDictionary<UserType, string> UserTypeMap{ get; set; }
{
get{ return this.userTypeMap; }
set{ this.userTypeMap= value; this.InvokePropertyChanged( "UserTypeMap" );
}
....
}
在客户端,我创建了一个包含用户列表的 DataGrid
<sdk:DataGrid ItemsSource="{Binding Users}">
<sdk:DataGridTextColumn Binding="{Binding Id}" Header="ID"/>
<sdk:DataGridTextColumn Binding="{**??????????**}" Header="Type"/>
</sdk>
我不知道如何将字典值绑定到DataGridTextColumn, 我之前尝试使用组合框,使用 SelectedValue 和 ItemsSource 并且它有效, 但我想在文本框/标签上显示它,而不是在组合框上...
有没有一种纯粹的 xaml 方式(不是页面背后的代码)来做到这一点?
谢谢, 会
【问题讨论】:
标签: wpf silverlight xaml data-binding datagrid