好吧,这与这个问题有些相关:WPF Printing multiple pages from a single View Model
我试图遵循那里给出的建议,但现在我被困住了。
我的应用程序使用 MainView.xaml 和适当的 MainViewViewModel.cs,我在后台使用 MVVM Light。
现在-根据帖子-似乎我必须执行以下操作:
- 创建用户控件
- 从用户控件中公开一些属性
- 确保视图模型显示这些属性
这个想法很清楚,但是在尝试相互通知时我被卡住了。
我的用户控件 (UcTest.xaml) 公开了一个依赖属性:
public string SpecialText
{
get { return (string)GetValue(SpecialTextProperty); }
set
{
SetValue(SpecialTextProperty, value);
}
}
// Using a DependencyProperty as the backing store for SpecialText. This enables animation, styling, binding, etc...
public static readonly DependencyProperty SpecialTextProperty =
DependencyProperty.Register("SpecialText", typeof(string), typeof(UcTest), new PropertyMetadata(new PropertyChangedCallback(SpecialTextChangedPropertyCallback)));
private static void SpecialTextChangedPropertyCallback(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
// Do something
Debug.WriteLine("Ffgdgf");
}
好的,所以我现在确实有一个具有一些依赖属性的用户控件。然而,这些属性与我的 ViewModel 属性完全分开(那些是应该显示的)。
所以基本上我有两种可能性:
- 我现在如何告诉 UserControl 的 ViewModel 某些属性已更改?
- 是否有可能忘记依赖属性并直接访问视图模型?
附加信息#1:我已经上传了一个(简单)我在这里尝试做的例子:Example Project。我想从我的 MainViewViewModel 更改 UserControl1 中标签的值(通过 UserControl1 的 ViewModel 中的绑定属性)。