我有一個視圖模型(僞其結構代碼):DataGridComboBoxColumn不顯示的SelectedItem
class ViewModel
{
public List<Package> Packages { get; set; }
}
enum Type
{
Type1,
Type2, ....
}
class Package
{
public Type PackageType { get; set; }
}
這是我怎麼綁定我的DataGrid與視圖模型的財產包。
<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可以顯示組合框。但是,它不顯示Package.PackageType的值。它的行爲就像綁定只是一種方式來源。當我更新組合框時,對象被更新。另一種方式不起作用。
請幫忙。非常感謝。
嘗試'SelectedValueBinding'而不是'SelectedItemBinding' – Shoe
@Shoe無法正常工作,組合框在我改變它後立即丟失值。 –
您可以嘗試使用'DataTemplateColumn'並查看常規組合框是否會採用它 – Shoe