我是WPF的新手,尝试设置DataGridComboBoxColumn的绑定。
我有一个可能元素的字典用于组合框列,键是项属性应该具有的Id,值是ComboBox中显示的文本。 字典如下:
public static Dictionary<int, string> users;
数据网格中有一个项目列表,每个项目都有一个Id值用于下拉列表:
public static List<FileItem> fileItems = new List<FileItem>();
//...
public class FileItem {
public int OwnerId { get; set; }
//...
}
XAML现在看起来是这样的:
<DataGrid x:Name="DataGridUpdates" Margin="12,74,10,313" AutoGenerateColumns="False" DataContext="{Binding FileItems}">
<DataGrid.Columns>
<DataGridComboBoxColumn x:Name="ClmOwner" Header="Owner" ClipboardContentBinding="{x:Null}" SelectedValueBinding="{x:Null}" SelectedItemBinding="{x:Null}" TextBinding="{x:Null}"/>
</DataGrid.Columns>
</DataGrid>
我尝试使用以下方法:
SelectedValueBinding="{Binding Path=OwnerId}" SelectedValuePath="OwnerId"
但是它没有起作用,行中显示了空的ComboBox,因为它没有ItemsSource,我不知道在哪里设置它。
在代码后台中,我可以像这样设置ItemsSource,以至少设置值列表:
ClmOwner.ItemsSource = FileItem.users;
但我更喜欢使用XAML。
问题是如何设置ComboBox的XAML绑定,以获取用户字典的值,并将值选择为OwnerId属性的值。
PS:我不确定DataContext是否应该像现在这样使用值"{Binding FileItems}"。