Enlace WPF a array multidimensional en el xaml
Tengo problemas para formular la cadena XAML para vincular a un elemento específico en una matriz multidimensional.
El DataContext contiene las siguientes líneas:
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; } }
El XAML contiene las siguientes líneas:
<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>
El enlace aOneDimension
yJagged
trabajar como se esperaba. El enlace aTwoDimension
no funciona y parece estar equivocado, sin embargo, el XAML no me permite usar el separador,
así que no sé cómo enlazar a una matriz bidimensional.
Esta:
<Button Content="{Binding TwoDimension[1,1]}" Width="100" Height="50" />
no compila porque el XAML se interpreta como que tiene dos argumentos para el Constructor de enlace. ¿Hay alguna forma de escapar del analizador o hay otra forma de escribir esto que no conozco?
EDITAR:
Acabo de descubrir que es posible escapar del separador de esta manera
<Button Content="{Binding TwoDimension[1\,1]}" Width="100" Height="50" />
o simplemente rodear el argumento con marcadores como este
<Button Content="{Binding 'TwoDimension[1,1]'}" Width="100" Height="50" />
Sin embargo, esta línea ahora conduce a una excepción:System.ArgumentException
{"Das Array war kein eindimensionales Array."} Desafortunadamente C # se instaló en mi idioma nativo, molesto como una mierda ... así que esto se traduce aproximadamente en {"The Array no era un Array unidimensional."}
¿Es realmente imposible enlazar matrices multidimensionales?