在另一个组合框中切换选择后,我在我的窗口组合框:如何刷新组合框在WPF
<ComboBox x:Name="cbDeps"
ItemsSource="{Binding}" DisplayMemberPath="sName" SelectedValuePath="nDepartmentIdn"
Grid.Row="0" Margin="0,52,215,0" Grid.Column="1" SelectionChanged="cbUsers_SelectionChanged"/>
<ComboBox x:Name="cbUsersDep"
ItemsSource="{Binding}" DisplayMemberPath="sUserName" SelectedValuePath="nUserIdn"
Grid.Row="0" Margin="218,52,0,0" Grid.Column="1"/>
,我希望当我选择的第一个组合框的值,第二个由项目不仅填补的选定项目。我得到使用这种方法这些项目:
public ObservableCollection<DataModel.TB_USER> listUsersParDeps(int numDep)
{
var userDeps = (from DataModel.TB_USER ud in SessionContext.DBContext.TB_USER
where ud.nDepartmentIdn==numDep
select ud);
foreach (var userDep in userDeps)
{
userM.ListUserDep.Add(userDep);
}
return userM.ListUserDep;
}
,我把它们放在DataContext的:
cbUsersDep.DataContext = userVM.listUsersParDeps(int.Parse(cbDeps.SelectedValue.ToString()));
你能检查什么是你投入的cbUsersDep.DataContext对象的数据结构。 理想情况下,您应该这样做:从第一个组合的cbUsers_SelectionChanged提升userVM.RaisePropertyChanged(“listUsersParDeps”)。 这基本上是要求用户界面更新自己,并从财产中获取价值。 – Versatile
如何检查对象的数据结构? – user2734327
你可以检查这一行本身。 cbUsersDep.DataContext = userVM.listUsersParDeps(int.Parse(cbDeps.SelectedValue.ToString())); – Versatile