WPF中设置控件内容的更好方法是什么,而不是将类绑定到选择器控件?

3
我有一个应用程序,分为4个面板。有一个主要的绘图区域、一个顶部面板、一个左侧菜单面板和一个右侧子菜单面板,如下图所示。子菜单的内容取决于选择了哪个顶部菜单按钮,而子菜单的内容取决于选择了哪个右侧菜单。
例如,当点击网络设计和测试(展开器上的第一个按钮)时,会显示如下内容。当点击test2(展开器上的第二个按钮)时,右侧面板中应该有不同的按钮集。
我没有使用选项卡控件,因为地图性能问题,已经有10,000多个潜在的图形对象,我不想将这个数字乘以8。
我目前正在按照此帖子中所述进行操作: 在WPF中单击按钮更新ListBox的不同内容

到目前为止,这个方法效果很好...但是每个下拉菜单可能有多达8个选项,一些顶部标签有多达8个扩展器!使用上述代码需要大量的工作...希望有更加简洁的方法。


你能给一个具体的例子吗?我不完全理解右侧和左侧面板之间的关系。 - Federico Berasategui
好的,我已经更新了。如果我没有/有传达到重点,请告诉我。 - Steel Nation
只有在该面板的那个版本中才会有...但是在其他一些版本中,将不得不使用文本框、组合框和其他更复杂的控件。 - Steel Nation
我可以将一个项控件绑定到不同控件的特定组合集合上,就像我们使用节点/连接器一样吗?但是,与其使用 ListBox.ItemsSource = "Collection" 不同,我们使用 ListBox.ItemsSource = "{Static Resource {binding DataContext.SelectedSubMenu, Source={x:Reference main}}}"。 - Steel Nation
等等,你的意思是我可以通过设置点击或选中事件并抛出 MainViewModel.SelectedSection = CorrectInstanceOfSectionBlank 来手动设置 SelectedSection 属性吗?那就太完美了。 - Steel Nation
显示剩余15条评论
1个回答

0

为视图创建一个专用的ViewModel对象。ViewModel应该作为不同UI状态的状态机。它应该接受命令和属性更改,并计算和更改其结果属性,这些属性绑定到WPF控件。

这通常被称为MVVM模式,在WPF中广泛使用。模型是原始数据,视图是控件,而ViewModel是连接两者的状态机。例如,请查看this article


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接