這個問題在這里已經有了答案: 系結到靜態屬性 (12 個答案) 昨天關門了。
我曾嘗試以下操作,但出現語法錯誤。
class A {
public static int[] Numbers { get; } = new[] { 1, 2, 3 };
}
<TextBlock Text="{x:Static A.Numbers[0]}" /> <!-- syntax error -->
uj5u.com熱心網友回復:
"x:Static" 只支持訪問該型別的成員。請參閱檔案:StaticExtension Class。
要使用路徑(索引是路徑的一部分),您需要一個系結。這種系結的一個例子:
<TextBlock Text="{Binding [0], Source={x:Static lib:A.Numbers}}" />
lib:
與 A 類所在的名稱空間關聯的前綴在哪里。
或者使用更現代的系結語法(自 WPF 4.5 起):
<TextBlock Text="{Binding (lib:A.Numbers)[0]}" />
PS此外,為了消除可能的錯誤,您應該更改 Numbers 屬性的實作 - 保護集合不被更改或使其可觀察。
例子:
public class A
{
public static ReadOnlyCollection<int> Numbers { get; } = Array.AsReadOnly(new int[] { 1, 2, 3 });
// Or
public static ObservableCollection<int> Numbers { get; } = new ObservableCollection<int> () { 1, 2, 3 };
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/537153.html
標籤:wpfxaml