【发布时间】:2020-03-27 11:18:43
【问题描述】:
我在绑定到我的控件上的 DataGridTemplateColumn 列时遇到问题。我已经阅读了几篇关于此的帖子,但似乎没有一个对我来说正常工作,可能是因为应用程序架构 - 我不确定。绑定到 DataGridTextColumn 有效,但我在模板列中定义的 ComboBox 是空白的。我有这个 XAML sn-p::
<jibcontrols:JibGrid x:Name="UsersDataGrid">
...
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Text="{Binding Path=Role}" ItemsSource="{Binding Item, RelativeSource={RelativeSource AncestorType={x:Type DataGridRow}, Mode=FindAncestor}}" DisplayMemberPath="Role"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Width="2*" Binding="{Binding Role}"></DataGridTextColumn>
...
我们使用的是消息总线架构,因此在页面初始加载时数据源还没有准备好。从服务返回数据后,调用一个方法来填充 DataGrid:
private void UpdateGrid(Users o)
{
Dispatcher.Invoke(() =>
{
var entities = o.OrderBy(e => e.Role);
UsersDataGrid.FilteredItemsSource = entities;
UsersDataGrid.DataContext = entities;
});
}
在这种情况下我做错了什么?
【问题讨论】:
-
在
ComboBox中,您在哪里定义可供选择的选项?这些是什么类型的?Item是什么?
标签: wpf xaml data-binding