【发布时间】:2021-03-18 08:34:39
【问题描述】:
我遇到了 WPF 中数据网格中的组合框的问题。基本上我有一个“船员”类和“用户”类,在船员类中有一个列表,其中包含该船员的所有成员。
理想情况下,我希望数据网格有 3 列“船员 ID”、“成员”和“状态”,成员列将是一个组合框,可以单击以显示所有船员。我可以绑定船员,以便 id 和 status 显示正常,但不能显示成员。
数据网格通过返回所有工作人员列表的方法绑定在构造函数中。
任何帮助将不胜感激。
public ManagerDashboard(Dashboard Dash)
{
InitializeComponent();
dgCrew.ItemsSource = ds.listallCrews();
}
//CREW CLASS
public class Crew
{
Random rnd = new Random();
Datastore ds = new Datastore();
public List<OperationalUser> lstCrewMembers { get; set; }
public int Crewid { get { return GenId(); } }
public bool bIsActive { get; set; }
public Crew()
{
bIsActive = true;
}
private int GenId()
{
int id = rnd.Next(0, 1000);
foreach (User u in ds.ListAllUsers())
if (id == u.Userid)
id = rnd.Next(0, 1000);
return id;
}
}
//XMAL
<DataGrid.Columns>
<DataGridTextColumn Header="Crew ID"
Binding="{Binding Crewid}" />
<DataGridComboBoxColumn Header="Members"
ItemsSource="{Binding Path=DataContext.Crew, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"
DisplayMemberPath="Name"
SelectedItemBinding="{Binding lstCrewMembers, Mode=TwoWay}"
SelectedValueBinding="{Binding lstCrewMembers.Userid}"
SelectedValuePath="Userid"
/>
<DataGridCheckBoxColumn Header="Active"
Binding="{Binding bIsActive}" />
</DataGrid.Columns>
</DataGrid>
【问题讨论】:
标签: c# wpf xaml combobox datagrid