【发布时间】:2014-10-02 14:20:17
【问题描述】:
我用 MVVM 模式制作了一个 UserControl,其中 UserControl 的“智能”在它的 viewModel 中。
我想在不同的视图 (xaml) 中使用该 UserControl,因此该视图的开发人员不必介意它是如何完成的。
我在我的 UserControl 中添加了一些依赖属性,以便最终程序员可以为控件提供一些上下文信息。
但我有一些绑定问题。
在client.xaml中:
<Grid>
<MyUserControl MyDependencyProperty0={Binding ClientViewModelProperty0}/>
</Grid>
在 myusercontrol.xaml 中
<Grid>
<TextBlock Text={Binding TextToDisplay}/>
</Grid>
其中 TextToDisplay 是 MyUserControlViewModel 的一个属性。 我只需要设置一次ClientViewModelProperty0,不需要将clientViewModel设置为MyUserControl的DataContext,因为它有自己的dataContext(它的视图模型)
我认为解决方案将是不同的绑定表达式语法(相对源?自我?)但我看不出是哪一个...
【问题讨论】:
-
是时候让我再次复制粘贴我的“为用户控件创建视图模型是代码异味”的答案了吗?你有这个问题的原因是因为这个。想一想:TextBox 控件是否具有 TextBoxViewModel,或者它是否具有您的视图模型绑定到的属性和事件?那么为什么你的 UserControl 的行为不一样呢? One of my "don't do it!" answers
标签: wpf mvvm binding user-controls viewmodel