如何在不触发选择事件的情况下初始化WPF内容?
我试图做的事情似乎很简单,但由于某种原因,它感觉很笨拙,所以我认为我做错了什么 我只想做一些下拉列表,这些下拉列表会改变设置。它们在更改时被保存。 有一个下拉列表控制WPF窗口上显示的内容。当此下拉列表更改时,其他下拉列表中的设置将更改为新选择 我的问题是,当我在加载窗口时填写所有下拉列表的值时,它会触发所有下拉列表的事件选择Changed 因此,我希望有一个更好的解决方案,而不是在我的每个事件中进行空检查(这就是我现在所拥有的) 这些下拉列表永远不会没有值。它们也不是静态的。它们是在运行时从数据源计算的。即使是静态值也会触发事件。 一些下拉列表在控制所有其他下拉列表的所有值中具有固定值。这意味着它们是在启动期间的运行时计算的,永远不会更改 我不想在代码隐藏中绑定事件如何在不触发选择事件的情况下初始化WPF内容?,wpf,events,combobox,Wpf,Events,Combobox,我试图做的事情似乎很简单,但由于某种原因,它感觉很笨拙,所以我认为我做错了什么 我只想做一些下拉列表,这些下拉列表会改变设置。它们在更改时被保存。 有一个下拉列表控制WPF窗口上显示的内容。当此下拉列表更改时,其他下拉列表中的设置将更改为新选择 我的问题是,当我在加载窗口时填写所有下拉列表的值时,它会触发所有下拉列表的事件选择Changed 因此,我希望有一个更好的解决方案,而不是在我的每个事件中进行空检查(这就是我现在所拥有的) 这些下拉列表永远不会没有值。它们也不是静态的。它们是在运行时从数
停止使用一个下拉列表来控制其他人的选定项,而是让ViewModel(或您的绑定类)来控制它,怎么样 每个下拉列表都已经有了它的源代码,将绑定添加到所选的项(我认为默认情况下应该是双向模式)
然后,当ViewModel的SelectedConrolingItem属性更改时,更新/设置属性设置器中的其他选定项(SelectedProject等)如何停止使用一个下拉列表来控制其他选定项,而是让ViewModel(或您的绑定类)来控制它 每个下拉列表都已经有了它的源代码,将绑定添加到所选的项(我认为默认情况下应该是双向模式)
然后,当ViewModel的SelectedConrolingItem属性更改时,在属性设置器中更新/设置其他选定项(SelectedProject等)
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// This triggers the combobox selectionchanged
// The selection changed event sets the values of other dropdowns
// The event will not succeed because the values in those dropdowns
// are not populated
FillProjectList();
}
<ComboBox ItemsSource="{Binding ViewModel.ProjectsList}"
SelectedItem="{Binding ViewModel.SelectedProject}"/>
<ComboBox ItemsSource="{Binding ViewModel.SettingsList}"
SelectedItem="{Binding ViewModel.SelectedSettings}"/>
<ComboBox ItemsSource="{Binding ViewModel.TheControlingList}"
SelectedItem="{Binding ViewModel.SelectedConrolingItem}"/>