【问题标题】:Use Telerik ComboBox in WPF default DataGrid as DataTemple Column binding problem在 WPF 默认 DataGrid 中使用 Telerik ComboBox 作为 DataTemple 列绑定问题
【发布时间】:2021-02-25 07:18:54
【问题描述】:

我准备了 WPF DataGrid 并想在模板列中使用 RadComboBox,但 MVVM 的 ItemsSource 绑定不起作用。

有什么解决办法吗?

<DataGridTemplateColumn>
   <DataGridTemplateColumn.CellEditingTemplate>
      <DataTemplate>
         <telerik:RadComboBox ItemsSource="{Binding DataContext.Grades}"  />
      </DataTemplate>
   </DataGridTemplateColumn.CellEditingTemplate>
   <DataGridTemplateColumn.CellTemplate>
      <DataTemplate>
         <telerik:RadComboBox  ItemsSource="{Binding DataContext.Grades}"   />
      </DataTemplate>
   </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

【问题讨论】:

    标签: c# wpf xaml datagrid radcombobox


    【解决方案1】:

    如果 Grades 是数据网格项中的集合属性,请删除 DataContext

    <telerik:RadComboBox ItemsSource="{Binding Grades}"/>
    

    如果你有 Telerik 控件,为什么不直接使用它的数据网格等效 RadGridView 呢?如果您在其中create a combo box column,它将自动使用自己的RadComboBox 控件,例如:

    <telerik:RadGridView ItemsSource="{Binding MyItemsCollection}" AutoGenerateColumns="False">
       <telerik:RadGridView.Columns>
          <telerik:GridViewComboBoxColumn Header="Grades"
                                          DataMemberBinding="{Binding SelectedGrade}"
                                          ItemsSourceBinding="{Binding Grades}"/>
       </telerik:RadGridView.Columns>
    </telerik:RadGridView>
    

    请注意,您必须有一个像SelectedGrade 这样的属性,用于将选定的组合框项目存储在您的项目类型中,因为如果您不设置DataMemberBinding,该列将不会显示任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 2011-02-28
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多