1
我想在Windows 8 Metro風格的應用程序中將兩層嵌套數組綁定到XAML控件。陣列看起來像(用A,B,C是頂層陣列的元件)在Windows 8的XAML中綁定第二層嵌套數組
A --W --X B --Y C --Z
,我想的W
,X
,Y
和Z
一個屬性綁定。 實現此目的的建議方法是什麼?我應該使用IValueConverter(這會導致很多代碼)?
我想在Windows 8 Metro風格的應用程序中將兩層嵌套數組綁定到XAML控件。陣列看起來像(用A,B,C是頂層陣列的元件)在Windows 8的XAML中綁定第二層嵌套數組
A --W --X B --Y C --Z
,我想的W
,X
,Y
和Z
一個屬性綁定。 實現此目的的建議方法是什麼?我應該使用IValueConverter(這會導致很多代碼)?
如果我正確理解您的問題,我認爲您可以在屬性中使用LINQ的SelectMany()並報告PropertyChanged。例如:
private string[][] _my2DArray;
public string[][] My2DArray
{
get { return _my2DArray; }
set
{
_my2DArray = value;
OnPropertyChanged("My2DArray");
OnPropertyChanged("InternalArrays");
}
}
public IEnumerable<string> InternalArrays
{
get { return _my2DArray.SelectMany(a => a); }
}
您可能想要考慮使用ObservableCollection而不是數組來通知集合內的更改。
感謝您的回答。但我認爲它不回答我的問題。我的問題是我無法綁定到** all **第二級數組中的元素的屬性。在其他平臺(不是Windows 8)上,可以使用XPath表達式作爲綁定(請參見[此答案](http://stackoverflow.com/a/436779/1641070))。但在Win8上這是不可能的。 –