Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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# 了解绑定DataGridComboxColumn项源并选择EdItem_C#_Wpf_Datagrid_Combobox - Fatal编程技术网

C# 了解绑定DataGridComboxColumn项源并选择EdItem

C# 了解绑定DataGridComboxColumn项源并选择EdItem,c#,wpf,datagrid,combobox,C#,Wpf,Datagrid,Combobox,我不理解到DataGridComboxColumn的绑定是如何正确工作的。 My DataGrid TextColum显示我的行条目中的值,但ComboBoxColumn未填充 我有一个名为RowEntries的RowEntryView的ObservableCollection,它派生自: public class DataTypes : RowEntryView { private string _value; public string[] ValuesPossible {g

我不理解到DataGridComboxColumn的绑定是如何正确工作的。 My DataGrid TextColum显示我的行条目中的值,但ComboBoxColumn未填充

我有一个名为RowEntries的RowEntryView的ObservableCollection,它派生自:

public class DataTypes : RowEntryView
{
    private string _value;
    public string[] ValuesPossible {get; set; }
    public string Value 
    {
        get
        {
            return _value;
        }

        set
        {
            _value = value;
             OnPropertyChanged(new PropertyChangedEventArgs("Value"));
        }
    }
}
My DatagridTextColum显示值变量。我的DataGridComboBox列为空。可能的值用{“A”、“B”、“C”}填充,值用“A”填充



项目源是您希望显示的项目列表。SelectedItem(非selectedItemBinding)是您选择的对象。基本上,您需要有SelectedItem=“{Binding Value}”。 现在,为了能够将每个新选择的更改通知给datacontext,您的对象必须实现INotifyPropertyChanged,然后您的绑定将变为: SelectedItem=“{Binding Value,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}”。
你会在网上找到很多例子。

然后我建议使用DataGridTemplateColumn:

                            <DataGridTemplateColumn Header="Type">
                                <DataGridTemplateColumn.CellEditingTemplate>
                                    <DataTemplate>
                                        <ComboBox   ItemsSource="{Binding ValuesPossible}"
                                                    SelectedItem="{Binding Value, UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"></ComboBox>
                                    </DataTemplate>
                                       </DataGridTemplateColumn.CellEditingTemplate>
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock  Text="{Binding}"></TextBlock>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>

感谢您的回答:SelectedItem在DataGridComboxColum上不可用,INotifychanged在RowEntryView中实现
                            <DataGridTemplateColumn Header="Type">
                                <DataGridTemplateColumn.CellEditingTemplate>
                                    <DataTemplate>
                                        <ComboBox   ItemsSource="{Binding ValuesPossible}"
                                                    SelectedItem="{Binding Value, UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"></ComboBox>
                                    </DataTemplate>
                                       </DataGridTemplateColumn.CellEditingTemplate>
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock  Text="{Binding}"></TextBlock>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>