【问题标题】:Switching controls based on Combo Box Value根据组合框值切换控件
【发布时间】:2011-09-14 01:02:26
【问题描述】:

我正在研究开发一个 GUI,它将根据所选组合框项的值切换控件。

我尝试在 Visual Studio 中为 gui 设计器添加不同的画布或网格,但由于设计器中的所有内容相互重叠并且很难知道是什么,因此很难管理。

有没有一种简单的方法可以做到这一点,是否有一个特定的控件可以轻松实现。我真的不想在 c# 中编写 gui 代码而不使用 xaml。

我希望做的是所有控件都在自己的面板中,当组合框值更改时,一个面板被移除或隐藏,另一个面板被显示。

这样的事情怎么可能实现。

感谢您提供的任何帮助

【问题讨论】:

    标签: c# wpf user-interface


    【解决方案1】:

    您可以将每个不同的“模式”实现为单独的用户控件。

    然后有一个带有组合框的外壳,组合框 OnChange 将交换掉插入外壳的 UserControl。

    任何其他完全通用的组件,例如确定/取消按钮,都可以是外壳的一部分。

    要考虑的完全替代实现是选项卡式方法,但这可能只有在用户对其中几个操作有意义的情况下才可行。

    如果用户在组合中选择 A,在 UserControlForA 中进行更改,然后在组合中选择 B,您会怎么做?可能是一个烦人的极端情况,如果这是生产代码,那么您将来会收到用户要求更改其工作方式的请求。

    如果您确定设计,那就去吧。如果没有,我会尝试一些应用程序并尝试找到同类事物的一个很好的例子,并考虑他们是如何处理它的。

    但从技术上讲,我认为 UserControl 就是您所描述的。

    (编辑:crud 刚刚在问题中看到了 xaml/wpf,不确定在那种情况下这是正确的,在那里毫无头绪)

    【讨论】:

    • 感谢您的帮助,我选择了 UserControl 选项并在组合框值更改时在用户控件之间切换。再次感谢
    【解决方案2】:

    您可以为每种不同的模式使用DataTemplate。请参阅Different item template for each item in a WPF List for more information.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2013-12-24
      相关资源
      最近更新 更多