Ho difficoltà a formulare la stringa XAML per collegarla a un elemento specifico in una matrice multidimensionale.WPF Associazione all'array multidimensionale nell'xaml
Il DataContext contiene le seguenti righe:
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; } }
Il XAML contiene le seguenti righe:
<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>
Il legame OneDimension
e Jagged
funzionano come previsto. Il collegamento a TwoDimension
non funziona e sembra essere sbagliato, tuttavia XAML non mi consente di utilizzare il separatore ,
, quindi non so come associare a un array bidimensionale.
Questo:
<Button Content="{Binding TwoDimension[1,1]}" Width="100" Height="50" />
non compila perché il XAML viene interpretato come avente due argomenti per il Binding Costruttore. C'è un modo per sfuggire al parser o esiste un altro modo di scrivere ciò di cui non sono a conoscenza?
EDIT:
ho scoperto che è possibile evitare il separatore simili
<Button Content="{Binding TwoDimension[1\,1]}" Width="100" Height="50" />
o semplicemente circondano la discussione con marcatori come questa
<Button Content="{Binding 'TwoDimension[1,1]'}" Width="100" Height="50" />
Tuttavia questa riga ora porta ad un'eccezione: System.ArgumentException
{"Das Array war kein eindimension ales Array. "} sfortunatamente C# si è installato nella mia lingua nativa - fastidioso come merda ... quindi questo si traduce approssimativamente in {" La matrice non era una matrice onedimensionale. "}
È davvero impossibile associare gli array multidimensionali?
Per quanto ne so, non è possibile associare matrici multidimensionali in puro 'Xaml', sarà necessario creare un' IValueConverter' per eseguire il lavoro. –
Hmmm, per farlo dovrei sapere il tipo ... che sarebbe Array ... ma c'è un ValueConverter per array - ne sono sicuro. Posso iniettare il mio onw? – Johannes
Prova questo link. Spero che aiuti https://nicoschertler.wordpress.com/2014/05/22/binding-to-a-2d-array-in-wpf/ –