0

我有一个视图,我需要在其中显示一些 Grid 和 TabControl。网格上有一列应该显示类似于注释(备注)属性的内容。由于该字段可能包含大量数据,因此我将有一个带有 TextBox 控件的选项卡,该选项卡应允许用户查看/编辑便笺,而网格列将仅显示便笺上的几个首字母。

我将只发布相关部分:

public classSomeViewModel : ViewModelBase
{
    public SomeViewModel()
    {
        TabScreens = New List<ViewModelBase>();
        TabScreens.Add(new AnotherViewModel1());
        TabScreens.Add(new AnotherViewModel2());
    }

    List<ViewModelBase> TabScreens{get;set;}
}

SomeView xml:

<DataTemplate DataType="{x:Type vm:AnotherViewModel1}">
    <vw:AnotherView1 />
</DataTemplate>

<DataTemplate DataType="{x:Type vm:AnotherViewModel2}">
    <vw:AnotherView2 />
</DataTemplate>

另一个视图2:

<Grid>
    <TextBox Text={Binding Note} />
</Grid>

另一个ViewModel2:

public class AnotherViewModel2
{
    public string Note {get;set;}
}
}

所以 View 上的 TabControl 绑定到 TabScreens。DataTemplates 确保在加载 SomeView 时将同时加载 AnotherView1 和 AnotherView2。网格中的每一行都包含不同的注释。同步 SomeViewModel Remark 和 AnotherViewModel2 Remark 的最简洁方法是什么?

4

1 回答 1

0

将 2 个视图模型组合成一个具有单个 Remark 属性的主视图模型。如果没有必要,不要引入同步的需要。

于 2012-08-06T23:16:43.717 回答