2012-04-26 262 views
4

在這裏,我作爲發生混淆的{結合}和{綁定帳戶}。當只使用簡單的{}綁定並在下面的代碼結合與proprty名綁定:CONTENT =「{結合}」{binding}和{binding Account}有什麼區別?

<Border Grid.Row="1" Grid.Column="0" 
     Style="{StaticResource MainBorderStyle}" 
     Background="{StaticResource ResourceListGradientBrush}" 
     BorderThickness="0,0,1,1" 
     Padding="0"> 
    <StackPanel> 
     <HeaderedContentControl 
      Content="{Binding}" 
      ContentTemplate="{StaticResource CommandsTemplate}"/> 
    </StackPanel> 
</Border> 

這裏是下面的代碼結合發生 作爲

Text="{Binding Path=Name, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"/> 

,所以我想提前知道使用它們,them.thank的差異。

回答

4

{Binding}將簡單地綁定到在DataContext中設置的實際對象。 {Binding Account}將綁定到該對象上的屬性Account

在你的情況,如果你有一個ViewModel盤對陣根級別DataContext然後Account將財產上的ViewModel

如果你有

<HeaderedContentControl 
      Content="{Binding}" 
      ContentTemplate="{StaticResource CommandsTemplate}"/> 

這一切正在做的是設置稱爲AccountContentHeaderedContentControlViewModel,前提是您在WindowUserControlUserControl的代碼後面有這樣的內容

DataContext = yourViewModel; 
+0

:是的datacontext和的ItemSource相同爲的ItemSource的代碼是在這裏 prjndhi 2012-04-26 01:10:48

+0

不可以。DataContext在樹上的任何控件上都可用。通常,如果您使用的是mvvm,則會在Window或根級別控制/用戶控件上進行設置。任何mvvm示例都設置了這個。然後在子控件中,當你擁有'{Binding Account}'時,它將搜索可視化樹中的第一個對象到DataContext,然後綁定到一個屬性。在這種情況下,它將是賬戶屬性 – aqwert 2012-04-26 02:18:27

3

{Binding}將結合到當前DataContext

{Binding Account}將結合到一個Account屬性上的當前DataContext