我很难制定 XAML 字符串以链接到多维数组中的特定元素。
DataContext 包含以下几行:
private String[] _OneDimension = { "[0]", "[1]" };
private String[][] _Jagged = { new String[] { "[0,0]", "[0,1]" }, new String[] { "[1,0]", "[1,1]" } };
private String[,] _TwoDimension = { { "[0,0]", "[0,1]" }, { "[1,0]", "[1,1]" } };
public String[] OneDimension { get { return _OneDimension; } }
public String[][] Jagged { get { return _Jagged; } }
public String[,] TwoDimension { get { return _TwoDimension; } }
XAML 包含以下行:
<StackPanel>
<Button Content="{Binding OneDimension[1]}" Width="100" Height="50" />
<Button Content="{Binding Jagged[1][1]}" Width="100" Height="50" />
<Button Content="{Binding TwoDimension[1][1]}" Width="100" Height="50" />
</StackPanel>
绑定OneDimension
并按Jagged
预期工作。绑定TwoDimension
不起作用并且似乎是错误的,但是 XAML 不允许我使用分隔符,
,所以我不知道如何绑定到二维数组。
这:
<Button Content="{Binding TwoDimension[1,1]}" Width="100" Height="50" />
无法编译,因为 XAML 被解释为具有绑定构造函数的两个参数。有什么方法可以逃避解析器,还是有另一种我不知道的写法?
编辑:
我刚刚发现可以像这样逃避分隔符
<Button Content="{Binding TwoDimension[1\,1]}" Width="100" Height="50" />
或者只是用这样的标记包围论点
<Button Content="{Binding 'TwoDimension[1,1]'}" Width="100" Height="50" />
然而,这一行现在导致了一个例外:System.ArgumentException
{“Das Array war kein eindimensionales Array.”} 不幸的是,C# 以我的母语安装了自己 - 令人讨厌......所以这大致翻译为 {“The Array is not a onedimensionale Array. "}
绑定多维数组实际上是不可能的吗?