Combobox用于单个数据,但有多个表示

时间:2017-07-06 06:57:54

标签: c# wpf combobox

我不确定组合框是解决这个问题的最佳工具,但在视觉上它很有吸引力。

考虑像角度这样的数据 - 我可以用弧度(单个编辑框)或以度,分,秒,毫秒(4个编辑框)的形式输入其值 - 还有其他表示,但这两个就足够了。现在我的组合框有模式条目"弧度"," DMS"更改模式显示/隐藏适当的控制。

这种方法有两个缺点 - 它需要更多的空间(对于带有模式的额外组合框),并且因为每个控件都是不同的,所以右边的所有内容都会移动。

所以我正在考虑更直接的方法,而不是选择模式,它反过来切换给定控件的可见性,是否可以将每个控件放在组合框中,然后组合框将选择该控件。目标数据对于每一行(角度)将完全相同,但每行将具有不同的控制,因为每行将表示不同的表示。

可以使用组合框还是我在错误的门上敲打?如果组合框适合这项任务,该怎么做?

1 个答案:

答案 0 :(得分:0)

我专注于组合框级别的数据绑定,我没有注意到该解决方案使用了组合框的基础知识。

首先,暂时忘记组合框绑定到任何东西 - 只需每行定义ComboBoxItem并放置你喜欢的任何控件。实际上,您将获得相同数据的多个控件。

此时唯一缺少的部分是选择模式。由于我不再依赖于手动切换控件的可见性(组合框自动执行),因此我可以绑定到SelectedIndex并转换它只能来回飞行到模式。

请注意,组合框本身并不限于实际数据(在这种情况下是角度)。