C# DataGridComboxColumn绑定到列表<;字符串>;
我有一个包含datagrid的WPF应用程序。datagrid绑定到我的对象OrderBlock,该对象包含类型订单列表C# DataGridComboxColumn绑定到列表<;字符串>;,c#,wpf,xaml,datagrid,combobox,C#,Wpf,Xaml,Datagrid,Combobox,我有一个包含datagrid的WPF应用程序。datagrid绑定到我的对象OrderBlock,该对象包含类型订单列表 <DataGrid DataContext="{Binding OrderBlock}" Name="dataGridOrdersGood" ItemsSource="{Binding Orders}" 我有一个解决方案,您的列表是ComboBoxItem,这可能吗 这是我的示例XAML: &l
<DataGrid DataContext="{Binding OrderBlock}"
Name="dataGridOrdersGood"
ItemsSource="{Binding Orders}"
我有一个解决方案,您的列表是ComboBoxItem,这可能吗
这是我的示例XAML:
<DataGrid AutoGenerateColumns="False" Name="myGridTest">
<DataGrid.Columns>
<DataGridTextColumn Header="Text" Binding="{Binding MyText}" />
<DataGridTemplateColumn Header="Combobox">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox SelectedIndex="0" ItemsSource="{Binding ComboList}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
我的C班
公共类测试
{
私有字符串_MyText;
私有IList_组合列表;
公开考试()
{
_MyText=“Test 123”;
_ComboList=新列表();
_添加(new ComboBoxItem(){Content=“Next”,IsSelected=true});
_添加(新的ComboBoxItem(){Content=“Prev.”});
}
公共IList组合列表
{
获取{return\u ComboList;}
设置{u ComboList=value;}
}
公共字符串MyText
{
获取{return\u MyText;}
设置{u MyText=value;}
}
}
以及测试:
List<Test> cList = new List<Test>();
cList.Add(new Test());
cList.Add(new Test());
cList.Add(new Test());
cList.Add(new Test());
cList.Add(new Test());
myGridTest.ItemsSource = cList;
List cList=new List();
cList.Add(新测试());
cList.Add(新测试());
cList.Add(新测试());
cList.Add(新测试());
cList.Add(新测试());
myGridTest.ItemsSource=cList;
我希望这对您有所帮助…看起来DataGridComboxColumn->SelectedItemBinding必须在您的案例中:
SelectedItemBinding="{Binding StatusGood}"
您还必须设置DataGridComboBoxColumn的ItemsSource属性,并修改ViewModel以提供组合值,从而使用属性(StatusList)而不是字段
虚拟机:
公共类视图模型
{
公共列表状态列表{get;set;}
//建造师
公共视图模型()
{
StatusList=新列表();
状态列表。添加(“保持”);
状态列表。添加(“发送”);
}
}
XAML:
List<Test> cList = new List<Test>();
cList.Add(new Test());
cList.Add(new Test());
cList.Add(new Test());
cList.Add(new Test());
cList.Add(new Test());
myGridTest.ItemsSource = cList;
SelectedItemBinding="{Binding StatusGood}"
public class ViewModel
{
public List<string> StatusList { get; set; }
// constructor
public ViewModel()
{
StatusList = new List<string>();
StatusList.Add("Hold");
StatusList.Add("Send");
}
}
<DataGrid.Resources>
<local:ViewModel x:Key="ComboItems" />
</DataGrid.Resources>
<DataGridComboBoxColumn SelectedItemBinding="{Binding StatusGood}" ItemsSource="{Binding Path=StatusList, Source={StaticResource ComboItems}}" >