如何在XAML中设置属性的属性

本文关键字:属性 设置 XAML | 更新日期: 2023-09-27 18:26:42

我有一个用户控件作为我的视图(名为MyView),它的数据上下文设置为我的视图模型的实例(类型为MyViewModel
在我的视图中,我有一个只读属性后面的代码(这是MVVM Light片段),看起来是这样的:

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

MyViewModel有一个名为Title的字符串类型的属性,我想通过XAML更改它,因为MyView被用作ListBoxItemTemplate

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

我该怎么做
或者也许还有更好的方法

如何在XAML中设置属性的属性

您能简单地在MyView中创建一个反映视图模型的属性吗?

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

然后写:

<Controls:MyView Title="MyTitle" />

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