C# 装订词典<;字符串,int>;到
这是我的枚举C# 装订词典<;字符串,int>;到,c#,wpf,binding,C#,Wpf,Binding,这是我的枚举 public enum Works { [Description("Admin")] Admin, [Description("Chưa Set")] UnSetted, [Description("Vào - Ra")] InOut, [Description("Ra - Vào")] OutIn } 这是我的ViewModel public class DivisionViewModel : ViewModel
public enum Works
{
[Description("Admin")]
Admin,
[Description("Chưa Set")]
UnSetted,
[Description("Vào - Ra")]
InOut,
[Description("Ra - Vào")]
OutIn
}
这是我的ViewModel
public class DivisionViewModel : ViewModel<IDivisionView>
{
private IEnumerable<Account> accounts;
private ICommand confirmCommand;
private Dictionary<string, int> works;
....
}
公共类分区ViewModel:ViewModel
{
私人账户;
私有ICommand confirmCommand;
私人字典作品;
....
}
我将枚举转换为一个字典,并获得如下帐户
this.divisionViewModel.Accounts = Root.Accounts;
this.divisionViewModel.Works = Enum.GetValues(typeof(Works))
.Cast<Works>()
.ToDictionary(t => Tools.GetEnumDescription((Works)t), t => (int)t);
this.divisionViewModel.Accounts=Root.Accounts;
this.divisionViewModel.Works=Enum.GetValues(typeof(Works))
.Cast()
.ToDictionary(t=>Tools.GetEnumDescription((Works)t),t=>(int)t);
这是我的WPF数据网格
<DataGrid ItemsSource="{Binding Accounts}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<DataGrid.Columns>
<DataGridTextColumn
Binding="{Binding FullName, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True, NotifyOnValidationError=True}"
Header="Tên nhân viên" Width="*" ElementStyle="{StaticResource TextCellElementStyle}"
EditingElementStyle="{StaticResource TextCellEditingStyle}"/>
<DataGridComboBoxColumn></DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
如何将this.divisionViewModel.Works
绑定到DataGridComboBoxColumn
?
p/s:我希望我的用户直接在DataGrid上更改工作。我已经这么做了。但是似乎没有人谈论将字典绑定到DataGridComboxColumn。这是空的原因:
<DataGridComboBoxColumn ItemsSource="{Binding Works.Keys}">
注意:在Visual Studio中检查您的输出窗口,您将看到绑定错误,告诉您在
帐户中找不到名为Work
的属性,该属性不可用。它显示一个空选择列表。我试着在datagird和bindind之外放置另一个组合框来->工作。对不起,我看错了你的ViewModel。让我编辑我的答案
<DataGridComboBoxColumn ItemsSource="{Binding Works.Keys, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}">