数据网格模板列内的组合框显示system.data.datarowview

本文关键字:组合 显示 system datarowview data 网格 数据网 数据 | 更新日期: 2023-09-27 18:02:19

在我的项目中,我有三个组合框模板列的数据网格。组合框使用xaml进行数据绑定。但是当我运行项目组合框显示system.data.dataRowView。这是我的数据网格单元格的代码

<DataGridTemplateColumn Header="Category" Width="*" x:Name="categoryColumn">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox x:Name="categoryBox"
                            IsEditable="True"
                            fa:FocusAttacher.Focus="True"
                            controls:TextBoxHelper.ClearTextButton="True"
                            controls:TextBoxHelper.SelectAllOnFocus="True"
                            controls:TextBoxHelper.Watermark="Category"
                            MaxDropDownHeight="125"
                            SelectionChanged="CategoryBox_OnSelectionChanged"
                            IsSynchronizedWithCurrentItem="True"
                            DisplayMemberPath="{Binding CategoriesCollection.Columns[1]}"
                            SelectedValuePath="{Binding CategoriesCollection.Columns[0]}"      
                            ItemsSource="{Binding Path=DataContext.CategoriesCollection.DefaultView, 
                            RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

为什么没有显示正确的数据。谁能建议我一个方法来修复这个

数据网格模板列内的组合框显示system.data.datarowview

代码DisplayMemberPath="{Binding CategoriesCollection.Columns[1]}"是失败的,因为它必须给一个相对的源绑定,就像ItemsSource绑定你现在。

为Displaymember path

提供适当的绑定
{Binding Path=DataContext.CategoriesCollection.Columns[1], 
         RelativeSource={RelativeSource FindAncestor, AncestorType=DataGrid}}"`  

或将其硬编码为要查找的目标属性名