填充和绑定两个组合框WPF Caliburn.micro
我有这张桌子: 我在我的项目中使用这个名为NewItem的视图,在这个视图中有两个组合框 我想这样做: 在combobox组中有表组的所有描述,当我选择此描述的项目(第一个combobox)时,第二个combobox只填充与我之前选择的描述相关的描述 这是一些代码: XAML NewItemView:填充和绑定两个组合框WPF Caliburn.micro,wpf,binding,combobox,caliburn.micro,dapper,Wpf,Binding,Combobox,Caliburn.micro,Dapper,我有这张桌子: 我在我的项目中使用这个名为NewItem的视图,在这个视图中有两个组合框 我想这样做: 在combobox组中有表组的所有描述,当我选择此描述的项目(第一个combobox)时,第二个combobox只填充与我之前选择的描述相关的描述 这是一些代码: XAML NewItemView: <ComboBox Height="21" HorizontalAlignment="Left" Margin="89,99,0,0" Vertic
<ComboBox Height="21" HorizontalAlignment="Left" Margin="89,99,0,0"
VerticalAlignment="Top" Width="106" x:Name="Group" SelectedItem="{Binding SelectedGroup}" />
我想指定使用Caliburn.Micro和Dapper进行acces查询
非常感谢你 这是一个典型的主/细节场景,有一个典型且简单的解决方法 I.在
GetGroups
方法中,不只是将描述作为string[]
加载,而是加载enitreGroup
对象,或者如果有许多属性,则创建仅包含两个所需属性的视图模型,如下所示:
class GroupViewModel {
public int GroupId {get; set;}
public string Description {get; set;}
}
class NewItemViewModel {
public GroupViewModel SelectedGroup
{
set {
var currentlySelected = value;
// LOAD ALL RELATED Subgroup Descriptions FOR currentlySelected.GroupId;
Subgroups = // LOADED Subgroup DESCRIPTIONS
}
}
public ObservableCollection<GroupViewModel> Group { get { return Groups; } }
}
二,。在NewItemViewModel
中,为第二个组合框添加一个属性
class NewItemViewModel {
private ObservableCollection<SubgroupViewModel> _subgroups;
public ObservableCollection<SubgroupViewModel> Subgroups
{
get {
if (_subgroups == null)
_subgroups = new ObservableCollection<SubgroupViewModel>();
return _subgroups;
}
set {
_subgroups = value;
NotifyPropertyChanged("Subgroups");
}
}
}
我希望你能理解,这是这个方法的基本轮廓。我认为您可以通过利用其中的一些技术和使用其他技术来加载数据,从而对其进行一些改进。您能否提供一些代码,说明您是如何尝试实现的,还是在如何实现目标方面迷失了方向?我更新了我的问题!
class NewItemViewModel {
private ObservableCollection<SubgroupViewModel> _subgroups;
public ObservableCollection<SubgroupViewModel> Subgroups
{
get {
if (_subgroups == null)
_subgroups = new ObservableCollection<SubgroupViewModel>();
return _subgroups;
}
set {
_subgroups = value;
NotifyPropertyChanged("Subgroups");
}
}
}
class NewItemViewModel {
public GroupViewModel SelectedGroup
{
set {
var currentlySelected = value;
// LOAD ALL RELATED Subgroup Descriptions FOR currentlySelected.GroupId;
Subgroups = // LOADED Subgroup DESCRIPTIONS
}
}
public ObservableCollection<GroupViewModel> Group { get { return Groups; } }
}