2011-06-20 98 views
4

何時在路徑中使用「/」符號? 我認爲,當我們使用XML「/」只使用,但今天看到的例子:WPF綁定語法

class ViewModel 
{ 
    CollectionView Data {get;set;} 
} 

class BusinessObkect 
{ 
    string Name {get;set;} 
} 
窗口

DataContext屬性設置爲視圖模型類的實例,視圖模型實例的數據屬性niitialized與一個BusinessObject對象的集合。

如果TextBox實例的Text屬性爲 {Binding Path=Data/Name}一切正常,但是如果Text = {Binding Path=Data.Name} - 綁定錯誤。

當我必須使用「/」而不是「」。在綁定路徑?

回答

11

爲什麼不問the documentation

屬性的

子屬性可以通過類似於C#中使用語法來指定。例如,子句Path = ShoppingCart.Order將綁定設置爲對象或屬性ShoppingCart的子屬性Order。

當源是collection view,當前項可以用斜線(/)來指定。例如,子句Path = /設置綁定到視圖中的當前項目。當源是集合時,此語法指定默認集合視圖的當前項目。

(Collection視圖鏈接添加了方便)

這是我們所簡潔,完整,因爲它得到。使用集合的.表示法對其中一個項目的屬性甚至沒有意義。例如Collection.Date而不是Collection/Date(除非集合本身由於某種原因實際上具有Date屬性)。

4

Data是一個集合,您需要使用它。 /Data集合的當前元素並在其上返回Name屬性。

+0

你是什麼意思的「當前元素的集合」?我所熟悉的這些集合類型都沒有關於當前項目的概念。 –

+0

在這種情況下,他自己使用'CollectionView',它已經有了。如果您使用'ObservableCollection '(或類似的),那麼WPF引擎會將它包裝到一個'CollectionView'中以提供這些必要的基礎設施。 – Femaref

+0

啊,好的,很高興知道。謝謝。 –