DataGridComboBoxColumn绑定到List

我有一个包含数据网格的WPF应用程序。 datagrid绑定到我的对象OrderBlock,它包含一个类型为Order的List。

<DataGrid DataContext="{Binding OrderBlock}" Name="dataGridOrdersGood" ItemsSource="{Binding Orders}" 

这工作正常,并在我的数据网格中很好地显示。 我的列表中有一个属性(StatusGood)虽然我想显示为一个combobox,其中只有两个值,“发送”或“保持”。

所以我试图将combobox值绑定到List StatusList,如下所示。 然后尝试将实际值绑定到我的对象。

 public class ViewModel : INotifyPropertyChanged { public List StatusList; // constructor public ViewModel() { StatusList = new List(); StatusList.Add("Hold"); StatusList.Add("Send"); } }  

但是除了空的combobox之外没有显示任何内容。 我不明白为什么我的combobox至少没有显示我的对象的价值? 我提供了一个列表,所以我不明白为什么它没有显示任何东西。

我是WPF的新手,必须努力去理解它。 我已经引用但显然没有完全理解它。 http://msdn.microsoft.com/en-us/library/system.windows.controls.datagridcomboboxcolumn.aspx

任何帮助都会很棒! 谢谢,M

看起来像DataGridComboBoxColumn-> SelectedItemBinding必须在你的情况下:

  SelectedItemBinding="{Binding StatusGood}" 

并且您还必须设置DataGridComboBoxColumn的ItemsSource属性并修改ViewModel以提供组合值以使用属性(StatusList)而不是字段。

VM:

 public class ViewModel { public List StatusList { get; set; } // constructor public ViewModel() { StatusList = new List(); StatusList.Add("Hold"); StatusList.Add("Send"); } } 

XAML:

      

我有一个解决方案,你的List是一个ComboBoxItem,这可能吗?

这是我的示例XAML:

             

我的C#-Class

 public class Test { private string _MyText; private IList _ComboList; public Test() { _MyText = "Test 123"; _ComboList = new List(); _ComboList.Add(new ComboBoxItem() { Content = "Next", IsSelected = true }); _ComboList.Add(new ComboBoxItem() { Content = "Prev." }); } public IList ComboList { get { return _ComboList; } set { _ComboList = value; } } public string MyText { get { return _MyText; } set { _MyText = value; } } } 

并用于测试:

  List cList = new List(); cList.Add(new Test()); cList.Add(new Test()); cList.Add(new Test()); cList.Add(new Test()); cList.Add(new Test()); myGridTest.ItemsSource = cList; 

我希望这有助于你……