[英]C# WPF Select ComboBox Item By DataGrid SelectedItem
在此处输入图像描述大家好,我已经四处搜索,但并没有真正找到明确的答案。 如何 Select ComboBox Item By DataGrid SelectedItem 在选择 DataGrid Rwo 时使用 DataBinding,ComboBox 必须更改以匹配 DataGrid 单元格值。 我的数据网格
<DataGrid x:Name="DatagridGroup"
ItemsSource="{Binding GroupList}"
SelectedItem="{Binding SelectedGroup ,Mode=TwoWay}"/>
我的 ComboBox
<ComboBox x:Name="ComGroupType"
ItemsSource="{Binding GroupTypeList}"
DisplayMemberPath="GroupTypeName"
SelectedItem="{Binding SelectedGroupType,Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"/>
我的视图模型
private Group selectedGroup = new Group();
public Group SelectedGroup
{
get => selectedGroup;
set
{
selectedGroup = value;
OnPropertyChanged(nameof(SelectedGroup));
selectedGroupType = value.GType;
OnPropertyChanged(nameof(selectedGroupType));
}
}
private GroupType selectedGroupType = new DebitCredit();
public GroupType SelectedGroupType
{
get => selectedGroupType;
set
{
selectedGroupType = value;
OnPropertyChanged(nameof(selectedGroupType));
}
}
我的 Model
public class Group
{
private GroupType gType = new GroupType();
private int groupID;
private int groupNumber;
private string groupName;
private int groupTypeID;
private string groupTypeName;
public GroupType GType
{
get => gType;
set
{ gType = value; }
}
public int GroupID
{
get => groupID;
set
{ groupID = value; }
}
public int GroupNumber
{
get => groupNumber;
set
{ groupNumber = value; }
}
public string GroupName
{
get => groupName;
set
{ groupName = value; }
}
public int GroupTypeID
{
get => groupTypeID;
set
{
groupTypeID = value;
gType.GroupTypeID = value;
}
}
public string GroupTypeName
{
get => groupTypeName;
set
{
groupTypeName = value;
gType.GroupTypeName = value;
}
}
}
我是 MVVM 的新手,我之前没有找到任何解释这个想法的问题
在SelectedGroup
的设置器中设置SelectedGroupType
属性:
public Group SelectedGroup
{
get => selectedGroup;
set
{
selectedGroup = value;
OnPropertyChanged(nameof(SelectedGroup));
SelectedGroupType = value.GType;
}
}
您还需要为属性引发PropertyChanged
事件:
public GroupType SelectedGroupType
{
get => selectedGroupType;
set
{
selectedGroupType = value;
OnPropertyChanged(nameof(SelectedGroupType));
}
}
或者,您可以直接绑定到DataGrid
的SelectedItem
:
<ComboBox x:Name="ComGroupType"
ItemsSource="{Binding GroupTypeList}"
DisplayMemberPath="GroupTypeName"
SelectedItem="{Binding SelectedItem.GType, ElementName=DatagridGroup}"/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.