问题:
- 添加控件后, 编辑单元格会出现异常
- 绑定 ItemsSource 属性后, 更新绑定对象的数据, UI 不刷新
- 如何显示控件中 ComboBox 类型
解决方法:
- 绑定 ItemsSource 属性即可
- 每次更新绑定对象后, 先
ItemsSource = null
, 再重新绑定 ItemsSource
- 使用静态类型设置 ComboBox 的 ItemsSource, 如下所示:
<Window
...
xmlns:core="clr-namespace:System;assembly=mscorlib"
xmlns:local="<!-- 指向枚举类型所在的命名空间 -->"
...>
<Window.Resources>
<ResourceDictionary>
...
<!-- Create list of enumeration values -->
<ObjectDataProvider
x:Key="myEnum"
MethodName="GetValues"
ObjectType="{x:Type core:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type Type="local:<!-- 枚举类型 -->" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</ResourceDictionary>
</Window.Resources>
<Grid>
...
<DataGrid
...
<DataGrid.Columns>
...
<materialDesign:MaterialDataGridComboBoxColumn
Header="<!-- 列标题 -->"
ItemsSource="{Binding Source={StaticResource myEnum}}"
SelectedValueBinding="{Binding <!-- 绑定数据 -->}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
参考: