我试图将Combobox绑定到数据网格中的对象,但收效甚微。
Object.cs:
public class Object {
public static IEnumerable<string> Colors => new List<string> {"Red", "Green", "Blue"}
}
public string Color {
get => color;
set => color = value;
}
private string Color;
我的ViewModel包含这些模型的集合,我将其称为Objects
。
XAML文件:
<DataGrid Name="DataGrid" ItemsSource={Binding Objects}" Style={StaticResource DataGridStyle}">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Test" SelectedValueBinding="{Binding Color, StringFormat=F3, Mode=TwoWay}" ItemsSource="{Binding Colors}"/>
<DataGrid.Columns/>
<DataGrid/>
有人知道我在做什么错吗?现在,我看到的是ComboBox应该存在的空白区域。我尝试过以下尝试但未成功的事情,我怀疑这可能是问题所在:
Color
列表应该在对象本身还是在ViewModel中?我已经尝试过两者,并且还尝试过将属性设为静态。DataGridComboBoxColumn.ElementStyle
和DataGridComboBoxColumn.EditingElementStyle
答案 0 :(得分:2)
这应该有效:
<DataGridComboBoxColumn Header="Test"
SelectedValueBinding="{Binding Color, StringFormat=F3, Mode=TwoWay}"
ItemsSource="{x:Static local:Object.Colors}"/>
local
映射到定义Object
的名称空间:
xmlns:local="clr-namespace:WpfApp1"