我用MVVM模式創建了UserControl,其中UserControl的「智能」位於其viewModel中。使用該控件時MVVM UserControl和綁定
我想在不同的視圖(xaml)中使用UserControl,因此該視圖的開發人員不必介意它是如何完成的。
我在我的UserControl中添加了一些dependencyProperties,所以最終程序員可以給控件一些上下文信息。
但我有一些綁定問題。
在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行爲不一樣? [我的一個「不這樣做!」答案(http://stackoverflow.com/questions/25795871/wpf-databinding-with-mvvm-and-user-controls/25796096#25796096) – Will 2014-10-02 14:54:20