2015-02-06 88 views
0

我不明白如何绑定到DataGridComboBoxColumn工作正常。 我的DataGrid TextColum显示我的RowEntries中的值,但ComboBoxColumn未填充。了解绑定DataGridComboBoxColumn Itemssource和SelectedItem

我RowEntryView命名RowEntries的的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")); 
     } 
    } 
} 

我DatagridTextColum显示值变量。我的DataGridComboBoxColumn是空白的。可能的值填充{ “A”, “B”, “C”},价值充满了 “A”

<DataTemplate x:Name="myDataTemplate"> 
     <DataGrid RowHeight="30" VerticalContentAlignment="Center" x:Name="myDataGridMain" CanUserAddRows="False" AutoGenerateColumns="False" ItemsSource="{Binding RowEntries}" > 
     <DataGrid.Columns>  
     <DataGridTextColumn Width="4*" IsReadOnly="True" x:Name="dataGridColumnDescription" Header="Value" Binding="{Binding Value}"> 
     </DataGridTextColumn> 
     <DataGridComboBoxColumn Header="Type" ItemsSource="{Binding ValuesPossible}" SelectedItemBinding="{Binding Value}"></DataGridComboBoxColumn> 
       </DataGrid.Columns> 
        </DataGrid> 
       </DataTemplate> 

enter image description here

回答

0

那么我会建议使用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> 
+0

这一工程.... THX实施 – nullxff 2015-02-06 12:37:13

0

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

+0

谢谢您的回答:是的SelectedItem上不可用DataGridComboBoxColum和INotifychanged在RowEntryView – nullxff 2015-02-06 12:18:23

相关问题