2010-12-06 79 views
0

在關於數據綁定和UserControls之前的question I had posted中,我遇到了設置簡單屬性的問題,以便我可以更改顏色,大小等。肯特給了我一些很棒的指針,並且工作得很好。然後,我創作了一個新的用戶控件,並使用他的建議,這個工作也很棒。命令與UserControl的數據綁定問題 - 分離DataContext?

現在我在下一步 - 數據綁定命令。我現在的結構是這樣的:

窗口--contains - > UserControlB --contains - > UserControlA

在UserControlA

現在綁定屬性的作用很大,我UserControlB暴露這些相同的屬性,以便窗口可間接更改UserControlA。問題是,UserControlB的DataContext設置是這樣的:

<UserControl x:Name="root"> 
    <Grid DataContext="{Binding ElementName=root}"> 
    ... 
    <Button Command="{Binding MyCommand}" /> 
    ... 
    </Grid> 
</UserControl> 

但我想mycommand的綁定到我的視圖模型。我認爲可以單獨設置DataContexts,但是如何讓按鈕指向XAML中的ViewModel?

我發現一個related post,但聽起來不像我想要做的。我想在代碼中創建ViewModel,而不是在XAML中創建。

回答

1

您應該結合這個樣子:

<Button Command="{Binding Path=DataContext.MyCommand, RelativeSource={RelativeSource  Mode=FindAncestor, AncestorType={x:Type TypeOfYourControlWithViewModelDataContext}}"/> 
+0

謝謝,我會試試看。我應該開始嘗試一些東西,但是在試圖弄清楚所有東西是如何連接的時候,我總是完全迷失方向,以及設置祖先的邏輯方法是什麼。 – Dave 2010-12-06 18:03:15