在其他视图中的视图模型中设置属性

本文关键字:视图 设置 属性 模型 其他 | 更新日期: 2023-09-27 18:36:40

我有一个带有WindowUserControl的WPF应用程序。该UserControl是使用 MVVM 模式实现的。因此,在视图中,我有一个Label,它显示了视图模型中名为InfoMessage的string属性的值。

Window中,我添加了此UserControl的实例

<views:ItemInfoView Grid.Row="3" Grid.Column="1" x:Name="itemInfoView"/>

现在我想从我的Window的 XAML 设置信息消息。目前我不知道如何在 xaml 中实现这一点。在代码隐藏中,我可以访问控件的DataContext并将其强制转换为 ItemInfoViewModel,并设置如下值:

((ItemInfoViewModel)itemInfoView.DataContext).InfoMessage = "Hello World";

但我希望有一种方法可以在纯 XAML 中做到这一点。有谁知道这是否可能以及如何?

在其他视图中的视图模型中设置属性

需要向用户

控件添加依赖项属性:

// Your property
public string InfoMessage{get;set;}
// Register Dependency Property
public static readonly DependencyProperty InfoMessageProperty =
DependencyProperty.Register("InfoMessage", typeof(string), typeof(ItemInfoView),
        new UIPropertyMetadata(true));

然后,您应该能够直接设置或绑定信息消息:

<views:ItemInfoView Grid.Row="3" Grid.Column="1" InfoMessage="Whatever"/>