2014-04-27 50 views
1

我跟着不同的教程和例子,他們向我展示了這些不同類型的結合,但是我不明白何時使用一個和當使用另一個。{結合},{結合Data.XXX},{綁定路徑= XXX}和其他WPF

比如有時我看乾脆:

Binding="{Binding}" 

有時候(這我知道如何使用它)設置後DataContext

Binding="{Binding Propriety1}" 

在DevExpress的GridControl我看到:

Binding="{Binding Data.ProprietyName}" 

等。
能否簡單解釋一下,明白爲什麼這麼不同的情況?我在網上搜索,但教程只說明綁定是什麼(我知道是什麼)和一個簡單的例子,就像我寫的第三個例子。

預先感謝您。這裏

+3

您應該閱讀以下文檔:http://msdn.microsoft.com/zh-cn/library/ms742451 –

回答

3

K公司要求您提供的簡單的解釋:

Binding="{Binding}" 

那就是當你綁定DataContext對象本身。所以無論在綁定綁定的當前作用域中的DataContext。可以也可以寫成Binding="{Binding .}"

下一頁:

Binding="{Binding Propriety1}" 

在這裏,我們目前的DataContext內結合Propriety1。這一個是相同的{Binding DataContext.Propriety1, RelativeSource={RelativeSource Self}}" />

最後:

Binding="{Binding Data.ProprietyName}" 

在這裏,我們結合ProprietyName屬於Data這是在當前DataContext

聲明的屬性,所有這些都在本例所示:Download Link

<StackPanel x:Name="LayoutRoot"> 
    <TextBlock DataContext="{Binding TestStringOne}" 
       Text="{Binding}" /> 
    <TextBlock DataContext="{Binding TestStringOne}" 
       Text="{Binding .}" /> 
    <TextBlock Text="{Binding TestStringTwo}" /> 
    <TextBlock Text="{Binding Data.TestStringThree}" /> 
</StackPanel> 

該屬性和Data對象的類可以在MainViewModel.cs中找到這些