C# Catel中的ViewModels集合
我有几个C# Catel中的ViewModels集合,c#,wpf,mvvm,catel,C#,Wpf,Mvvm,Catel,我有几个DataTemplates的视图。每个DataTemplate都有如下视图和视图模型: <DataTemplate DataType="{x:Type viewModels:exampleViewModel}"> <AdornerDecorator> <ScrollViewer> <views:exampleView /> </ScrollViewer> &
DataTemplate
s的视图。每个DataTemplate
都有如下视图和视图模型:
<DataTemplate DataType="{x:Type viewModels:exampleViewModel}">
<AdornerDecorator>
<ScrollViewer>
<views:exampleView />
</ScrollViewer>
</AdornerDecorator>
</DataTemplate>
显然,对于包含TabControl的视图,有一个“主”视图模型
这非常有效,可以为集合中的每个项目为我创建TabItem
s,还可以设置每个页面的内容
我现在想把这个问题转移到Catel,但不知道从哪里开始,因为(如果我错了,请纠正我):
有什么建议吗?我建议搬到卡特尔。它确实解决了这个问题(这就是它最初被编写的原因)。要获得良好的起点,请查阅大量文档: WPF入门部分是一本很好的读物: 另请查看示例存储库:
您当前的设计有缺陷。。。如果您的
集合
属性包含所有视图模型,则这意味着它们都已实例化,并且即使在未显示时也会耗尽资源。如果我是你的话,我会用卡特尔的举动来重做你的设计。@Sheridan是的。。。这就是为什么我要搬到卡特尔去?有什么建议吗?关于如何在Catel中实现类似的东西,即。我们的想法显然不是要实例化任何ViewModels,而是使用我的Model中的一组项。我必须为我的场景查看一个特定的示例,或者您认为我的设计需要返工吗。简单地说,是否有一种“最佳实践”方法可以使用Catel创建包含多个(未知)选项卡项的选项卡控件?例如,如果我的模型中有一个车辆对象,它有一组车轮(但为了论证,每个车轮都不同),车轮的数量也不同,我如何使用Catel来实现这一点,以利用Tab控件?Catel提供了一个TabControl(Catel.Extensions.Controls),允许您选择行为:顺便说一句,请确保使用最新的预发行版,它很稳定,几乎与4.0版一样,升级时将为您节省大量破坏性的更改。抱歉,在完成评论之前,我无意中按了“回车”键。。。我会看看Catel的标签控件,谢谢
<TabControl
DataContext="{Binding}"
ItemsSource="{Binding Collection, Mode=OneWay}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock
Text="{Binding}" />
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>