0

我有一个用户控件作为我的视图(名为MyView),它的数据上下文设置为我的视图模型(类型MyViewModel)的一个实例。
我在视图的代码隐藏中有一个只读属性(它是 MVVM-Light 片段),如下所示:

public MyViewModel Vm
{
    get { return (MyViewModel) DataContext; }
}

MyViewModel有一个名为Titlestring 类型的属性,我想通过 XAML 更改它,因为它MyView被用作ItemTemplate.ListBox

<ListBox ItemsSource="{Binding MyViewModelCollection}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Controls:MyView /> <!-- How do I set Vm.Title property here? -->
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

我怎样才能做到这一点?
或者也许有更好的方法?

4

1 回答 1

0

你能简单地在你的内部创建一个MyView反映到视图模型的属性吗?

public string Title 
{ 
    get { return ((MyViewModel) DataContext).Title; } 
    set { ((MyViewModel) DataContext).Title = value; }
}

然后写:

<Controls:MyView Title="MyTitle" />

如果要绑定标题,则必须使其成为依赖属性而不是常规属性。

于 2013-08-07T15:50:34.253 回答