Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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
C# 在WPF中实现自定义\用户控件的最佳实践_C#_Wpf_Mvvm_Datatemplate - Fatal编程技术网

C# 在WPF中实现自定义\用户控件的最佳实践

C# 在WPF中实现自定义\用户控件的最佳实践,c#,wpf,mvvm,datatemplate,C#,Wpf,Mvvm,Datatemplate,我有一个自定义控件列表,看起来应该是这样的 在我开始通过WPF中的自定义控件或用户控件(通过MVVM)实现它们之前,我想问一下我是否一切都做对了。我创建了一个DataTemplate和我需要的绑定属性(这些是列中的数值(0.13))以及ItemTemplate,并将其绑定到listview或listbox。此外,我还为这些模板提供了一个可视的viewmodels集合,每个viewmodel都会通过短时间间隔从从属设备发送一些特定的数值数据。此外,我需要点击这个绿色元素(我猜只是为了给模板添加一个

我有一个自定义控件列表,看起来应该是这样的


在我开始通过WPF中的自定义控件或用户控件(通过MVVM)实现它们之前,我想问一下我是否一切都做对了。我创建了一个DataTemplate和我需要的绑定属性(这些是列中的数值(0.13))以及ItemTemplate,并将其绑定到listview或listbox。此外,我还为这些模板提供了一个可视的viewmodels集合,每个viewmodel都会通过短时间间隔从从属设备发送一些特定的数值数据。此外,我需要点击这个绿色元素(我猜只是为了给模板添加一个按钮),并显示一个带有实时绘图的附加窗口。所以我的问题是:这是我说的正确方法还是我有什么不对的地方?我是WPF的新手,请原谅。我不认为实施这样的东西是一个巨大的挑战

我对这个模型也相当陌生,但是我发现有一件事可以帮助我管理多视图模型,那就是IOC定位器。可以在此处找到一个示例:


对于绿色物品列表,listbox/itemscontrol+datatemplate应该足够了。在典型的应用程序中,您通常不需要很多自定义控件。Usercontrols是一种很好的组织代码的方法。对,您可以将此控件放在usercontrol(单独的xaml文件)中,并在需要的地方使用它。如果需要它的列表,可以将ItemsControl的ItemTemplate与usercontrol一起使用。