DataGridComboBoxColumn数据绑定

Nig*_*ker 6 .net wpf xaml binding datagrid

我正在尝试数据绑定 DataGridComboBoxColumn

<DataGridComboBoxColumn Header="Number of Copies" SelectedItemBinding="{Binding NumberCopies}">
    <DataGridComboBoxColumn.ElementStyle>
       <Style TargetType="ComboBox">
          <Setter Property="ItemsSource" Value="{Binding LifeAreaList}"/>
          <Setter Property="IsReadOnly" Value="True"/>
       </Style>
    </DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn>
Run Code Online (Sandbox Code Playgroud)

我在这里做错了,因为我在运行时得到一个空的组合框.


我得到了关注

System.Windows.Data错误:2:找不到目标元素的管理FrameworkElement或FrameworkContentElement.BindingExpression:路径= LifeAreaList; 的DataItem = NULL; target元素是'DataGridComboBoxColumn'(HashCode = 49475561); target属性是'ItemsSource'(输入'IEnumerable')

Fre*_*lad 9

DataGridColumn不是源于FrameworkElementFrameworkContentElement不是它不在视觉树中而且没有a DataContext,这就是你的Binding失败的原因.

如果List<int>您绑定的对于每个项目都是相同的,那么您可能应该找到另一种绑定方式,也许您可​​以将其设置为静态并StaticResource在绑定中使用.

无论如何,要绑定ItemsSourceList<int>源类中的属性,您可以使用ElementStyleElementEditingStyle(如其他人所指出的).以下应该有效

<DataGridComboBoxColumn Header="Number of Copies"
                        SelectedItemBinding="{Binding ListAreaItem}">
    <DataGridComboBoxColumn.ElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding LifeAreaList}"/>
        </Style>
    </DataGridComboBoxColumn.ElementStyle>
    <DataGridComboBoxColumn.EditingElementStyle>
        <Style TargetType="ComboBox">
            <Setter Property="ItemsSource" Value="{Binding LifeAreaList}"/>
        </Style>
    </DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
Run Code Online (Sandbox Code Playgroud)