2014-02-07 4 views
2

У меня есть приложение, которое использует элемент управления DataGrid, который имеет DataGridComboBoxColumn, определенный в XAML. Теперь у меня есть требование, в котором я хочу создать DataGridComboBoxColumn и его привязку в коде позади.DataGridComboBox Колонка и привязка в коде

Мой XAML является:

<my:DataGrid.Columns> 
    <my:DataGridComboBoxColumn 
     Width="100" 
     Header="Product Code" 
     SelectedValueBinding="{Binding Path=Product_Id,UpdateSourceTrigger=PropertyChanged,ValidatesOnDataErrors=True}" 
     SelectedValuePath="Product_Id" 
     DisplayMemberPath="Product_Code"> 
     <my:DataGridComboBoxColumn.ElementStyle> 
     <Style TargetType="ComboBox"> 
      <Setter Property="ItemsSource" Value="{Binding Path=ProductList}"/> 
     </Style> 
     </my:DataGridComboBoxColumn.ElementStyle> 
     <my:DataGridComboBoxColumn.EditingElementStyle> 
     <Style TargetType="ComboBox"> 
      <Setter Property="IsEditable" Value="True" /> 
      <Setter Property="ItemsSource" Value="{Binding Path=ProductList}"/> 
      <Style.Triggers> 
       <Trigger Property="Validation.HasError" Value="true"> 
        <Setter Property="Background" Value="Pink"/> 
        <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
     </my:DataGridComboBoxColumn.EditingElementStyle> 
    </my:DataGridComboBoxColumn> 
</my:DataGrid.Columns> 

Теперь я хочу сделать DataGridComboBox колонку выше, и его связывание в коде, как это сделать?

+1

Это * не * веб-сайт, который вы можете использовать, чтобы получить ваш код, написанный для вас ... пожалуйста, покажите, что вы пробовали. В противном случае, пожалуйста, посмотрите на MSDN для ответа. – Sheridan

ответ

0

где datagrid является экземпляром вашего DataGrid.

 datagrid.Columns.Add(new DataGridComboBoxColumn() 
     { 
      Width = 100, 
      Header = "Product Code", 
      SelectedValuePath="Product_Id", 
      DisplayMemberPath="Product_Code", 
      SelectedValueBinding = new System.Windows.Data.Binding() 
      { 
       Path = new PropertyPath("Product_Id"), 
       UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged, 
       ValidatesOnDataErrors = true 
      } 
     }); 

следующие вещи для остальных вещей ...

+0

Но моя главная проблема с combobox itemsSource привязка, как я привязываю ее к свойству my viewModel – Mussammil

Смежные вопросы