多次元配列内の特定の要素にリンクする 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 では区切り記号を使用でき,
ないため、2 次元配列にバインドする方法がわかりません。
これ:
<Button Content="{Binding TwoDimension[1,1]}" Width="100" Height="50" />
XAML はバインディング コンストラクターに 2 つの引数があると解釈されるため、コンパイルされません。パーサーをエスケープする方法はありますか、それとも私が気付いていない別の書き方がありますか?
編集:
このようにセパレーターをエスケープできることがわかりました
<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# は私の母国語にインストールされました。 "}
多次元配列をバインドすることは実際には不可能ですか?