Tom*_*tom 1 c# wpf xaml user-controls mvvm
我有一个带有a Window和a 的WPF应用程序UserControl.它UserControl是用MVVM-Pattern实现的.所以在视图中我有一个在ViewModel中Label显示string名为InfoMessage 的-property 的值.
在Window我加入这个实例UserControl通过
<views:ItemInfoView Grid.Row="3" Grid.Column="1" x:Name="itemInfoView"/>
Run Code Online (Sandbox Code Playgroud)
现在我想从我的XAML设置InfoMessage Window.目前我不知道如何在xaml中实现这一点.在代码隐藏中,我可以访问DataContext我的控件并将其转换为ItemInfoViewModel并设置值如:
((ItemInfoViewModel)itemInfoView.DataContext).InfoMessage = "Hello World";
Run Code Online (Sandbox Code Playgroud)
但我希望在纯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));
Run Code Online (Sandbox Code Playgroud)
然后你应该能够直接设置或绑定InfoMessage:
<views:ItemInfoView Grid.Row="3" Grid.Column="1" InfoMessage="Whatever"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
357 次 |
| 最近记录: |