gpt4 book ai didi

c# - DataGridComboBoxColumn 不显示 SelectedItem

转载 作者:行者123 更新时间:2023-12-03 10:37:20 26 4
gpt4 key购买 nike

我有一个 ViewModel(其结构的伪代码):

class ViewModel
{
public List<Package> Packages { get; set; }
}
enum Type
{
Type1,
Type2, ....
}
class Package
{
public Type PackageType { get; set; }
}

这就是我将 DataGrid 与 ViewModel 的属性包绑定(bind)的方式。
<DataGrid ItemsSource="{Binding Packages}">
<DataGrid.Columns>
<DataGridComboBoxColumn ItemsSource="{Binding Source={StaticResource Types}}"
SelectedItemBinding="{Binding PackageType, Mode=TwoWay}">
</DataGridComboBoxColumn>
</DataGrid.Columns>

这就是我定义资源类型的方式:
<Window.Resources>
<CollectionViewSource x:Key="Types">
<CollectionViewSource.Source>
<ObjectDataProvider MethodName="GetNames" ObjectType="{x:Type sys:Enum}">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="s:Type"/>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</CollectionViewSource.Source>
</CollectionViewSource>
</Window.Resources>

DataGridComboBoxColumn 可以显示 ComboBox。但是,它不显示 Package.PackageType 的值。它的行为就像绑定(bind)只是一种来源方式。当我更新 ComboBox 时,对象也会更新。另一种方法不起作用。

请帮忙。非常感谢。

最佳答案

感谢所有的答案。我做了更多的研究。结果,问题出在我定义 ObjectDataProvider 时.我需要使用 MethodName="GetValues"反而。

关于c# - DataGridComboBoxColumn 不显示 SelectedItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21193686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com