Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
何时不模板WPF列表框。。。?_Wpf_Templates_Listbox - Fatal编程技术网

何时不模板WPF列表框。。。?

何时不模板WPF列表框。。。?,wpf,templates,listbox,Wpf,Templates,Listbox,我希望表示一组不同但相关的数据类型,并让用户有机会编辑这些数据类型。我不能在网格中表示它们,因为每种类型都不同,因此不适合网格布局 e、 g. Type1-属性是从、到、阈值、启用的 Type2-属性为From、executed percent、Benchmark、Enabled 等 这些类型是相关的,但不同,所以我想创建一个工具栏,上面有这些类型。当用户选择Type1时,我使用列表框上的自定义ItemTemplate生成UI,与Type2相同。因此,我在运行时交换ItemTemplate并更改

我希望表示一组不同但相关的数据类型,并让用户有机会编辑这些数据类型。我不能在网格中表示它们,因为每种类型都不同,因此不适合网格布局

e、 g.
Type1
-属性是从、到、阈值、启用的

Type2
-属性为
From、executed percent、Benchmark、Enabled

这些类型是相关的,但不同,所以我想创建一个工具栏,上面有这些类型。当用户选择Type1时,我使用列表框上的自定义ItemTemplate生成UI,与Type2相同。因此,我在运行时交换ItemTemplate并更改数据源

问题:
1.这听起来合理吗?
2.项目模板列表框有意义吗?
3.我应该考虑在这里模板化其他控件吗?在我看来,当需要显示所有项目时,ListBox是任何类型列表源的完美候选


提前感谢

您可以使用datatemplateselecter,这样在切换类型时不必设置itemtemplate,只需更改数据源即可

您可以使用datatemplateselecter,这样在切换类型时就不必设置itemtemplate,只需更改数据源即可

为了处理不同类型的项目,您可以使用更清晰的WPF解决方案


如果您不需要在列表框中选择项目,只需要显示项目,那么您应该使用
ItemsControl
而不是
listbox

来处理您可以使用的不同类型的项目,这将是更清晰的WPF解决方案

如果您不需要在列表框中显示所选项目,而只需要显示项目,则应使用
ItemsControl
而不是
listbox