gpt4 book ai didi

wpf - 问题绑定(bind) DataGridComboBoxColumn.ItemsSource

转载 作者:行者123 更新时间:2023-12-04 02:38:21 26 4
gpt4 key购买 nike

我有 3 张 table :
Item - 这是 DataContext - 它有一个导航列 Group
组 - 有一个导航列类别。

我想在 DataGrid 中包含两个(类别和组)列,当我选择一个类别时,它应该只在组 col 中显示 Category.Groups。

这是我正在处理的代码:

<tk:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}">
<tk:DataGrid.Columns>

<!--Works-->
<tk:DataGridComboBoxColumn
Header="Categroy"
DisplayMemberPath="Title"
SelectedValuePath="CategoryId"
SelectedValueBinding="{Binding Group.Category.CategoryId}"
ItemsSource="{Binding Context.Categories,
Source={x:Static Application.Current}}"
/>


<!--Look at these two things:-->

<!--This does work-->
<tk:DataGridTemplateColumn>
<tk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ItemsControl
ItemsSource="{Binding Group.Category.Groups}">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type data:Group}">
<TextBlock Text="{Binding Title}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</tk:DataGridTemplateColumn.CellTemplate>
</tk:DataGridTemplateColumn>

<!--But this does NOT work, even it's the same source-->
<!--Notice I even tried a dummy converter and doesnt reach there-->
<tk:DataGridComboBoxColumn
Header="Group"
DisplayMemberPath="Title"
SelectedValuePath="GroupId"
ItemsSource="{Binding Group.Category.Groups,
Converter={StaticResource DummyConverter}}"
SelectedValueBinding="{Binding Group.GroupId}"
/>

</tk:DataGrid.Columns>
</tk:DataGrid>

更新
您会说问题是 ItemsSource 属性不能设置为非静态绑定(bind)吗?
我怀疑是因为即使我将 ItemsSource 设置为 {Binding}DummyConverter它不会在转换器中停止;在类别组合框中它工作正常。

最佳答案

数据网格中的列没有数据上下文,因为它们从未添加到可视化树中。听起来有点奇怪,但看看 vince's blog ,它是视觉布局的一个很好的例子。绘制网格后,单元格具有数据上下文,您可以使用普通绑定(bind)(不是静态资源..)在其中设置组合框项目源

您可以像这样访问组合框项目源:

<dg:DataGridComboBoxColumn>
<dg:DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource" Value="{Binding Path=MyBindingPath}" />
</Style>
</dg:DataGridComboBoxColumn.EditingElementStyle>
</dg:DataGridComboBoxColumn>

看看 here还有 here对于一些代码。您还需要 设置非编辑元素的项目来源就像这个 post

关于wpf - 问题绑定(bind) DataGridComboBoxColumn.ItemsSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1724180/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com