我有一个带有几个 DataTemplate 的 View 。每个 DataTemplate 都有一个 View 和 ViewModel,如下所示:

<DataTemplate DataType="{x:Type viewModels:exampleViewModel}">
    <AdornerDecorator>
        <ScrollViewer>
            <views:exampleView />
        </ScrollViewer>
    </AdornerDecorator>
</DataTemplate>

然后我有一个绑定(bind)到 TabControlDataContext

在 DataContext 中,有一个 Collection,其中包含 DataTemplates 引用的所有不同 viewModel 的列表:
<TabControl
    DataContext="{Binding}"
    ItemsSource="{Binding Collection, Mode=OneWay}">
    <TabControl.ItemTemplate>
        <DataTemplate>
            <TextBlock
                Text="{Binding}" />
        </DataTemplate>
    </TabControl.ItemTemplate>
</TabControl>

显然,包含 TabControl 的 View 有一个“主” View 模型。

这很有效,为我为 Collection 中的每个项目创建 TabItem s,并设置每个页面的内容。

我现在想把它移到 Catel 但不知道从哪里开始,因为(如果我错了,请纠正我):
  • 我现在不应该在任何 ViewModel 和
  • 中引用任何其他 ViewModel
  • Catel 会自动为我链接我的 View 和 View 模型。

  • 有什么建议么?

    最佳答案

    我建议搬到卡特尔。它确实解决了这个问题(这实际上是它最初被编写的原因)。作为一个好的起点,请查看大量文档:

    https://catelproject.atlassian.net/wiki/display/CTL/Catel+documentation+Home

    一个很好的阅读是 WPF 部分的入门:

    https://catelproject.atlassian.net/wiki/display/CTL/Getting+started+with+WPF

    另请查看示例存储库:

    https://github.com/Catel/Catel.Examples

    关于c# - Catel 中的 ViewModel 集合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25286129/

    10-11 11:24