有时候最简单的例子是最难找到。 。 。

我有2列的数据网格。一列包含角色信息,另一列应该有可用的用户列表的组合框。在组合框的数据无关的在第一列中的数据。我揭去的事实,组合框没有一个DataContext,只有一个的ItemSource,我似乎无法使用绑定两种。

可有人请点我到使用两个不同的数据集的数据表和组合框中选择一个简单的例子?

有帮助吗?

解决方案

在数据网格中的列没有一个的datacontext,因为它们是从不添加到视件树。听起来有点怪异,但是看看的宾塞斯博客,它得到了可视化布局的一个很好的例子。一旦网格画出的细胞具有数据上下文并可以在其中使用普通绑定设置组合框项目源(未静态资源..)

,您可以在组合框项目源作为这样

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

看看这里和也此处一些代码

其他提示

代替使用DataGridTextColumns一个使用DataGridComboBoxColumn代替。然后一个中使用的ItemsSource,这在下面的例子指向静态资源外部枚举,最后一个结合的结果,以所述目标对象,这将保持在SelectedItemBinding所述用户选择的数据填充。

<DataGrid.Columns>

<DataGridComboBoxColumn Header="MySelections"  
                        SelectedItemBinding="{Binding MySelectionsProperty}" 
                        ItemsSource="{Binding Source={StaticResource mySelectionsEnum}}" />
</DataGrid.Columns>

请参阅在 DataGridComboBoxColumn类MSDN上一个完整的示例

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top