Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 装订词典<;字符串,int>;到_C#_Wpf_Binding - Fatal编程技术网

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}}}">