Çok boyutlu bir dizideki belirli bir öğeye bağlantı oluşturmak için XAML dizesini formüle etme konusunda sorun yaşıyorum.WPF xaml'daki çokboyutlu diziye bağlanma
DataContext aşağıdaki komutları içerir:
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 aşağıdaki komutları içerir:
<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>
bağlanma çalışmaları OneDimension
ve Jagged
beklendiği gibi. TwoDimension
'a bağlanma çalışmıyor ve yanlış görünüyor, ancak XAML ayırıcıyı ,
kullanmama izin vermiyor, bu yüzden iki boyutlu bir diziye nasıl bağlanacağımı bilmiyorum.
Bu: XAML Bağlama Oluşturucu için iki argüman sahip olarak yorumlanır olur çünkü
<Button Content="{Binding TwoDimension[1,1]}" Width="100" Height="50" />
derleme değil. Ayrıştırıcıdan kurtulmanın bir yolu var mı, yoksa bunu bilmediğim başka bir yol var mı?
DÜZENLEME:
Sadece bu
<Button Content="{Binding TwoDimension[1\,1]}" Width="100" Height="50" />
gibi ayırıcı kaçmak mümkün olduğunu öğrendim ya da sadece bu
<Button Content="{Binding 'TwoDimension[1,1]'}" Width="100" Height="50" />
gibi belirteçler ile argüman çevreleyen Ancak bu satır şu anda bir istisna getiriyor: System.ArgumentException
{"Das Array war kein eindimension ales Array. "} unfortunatelly C# kendi ana dilimde yüklü - bok gibi can sıkıcı ... bu yüzden kabaca" {Array onedimensionale Array "anlamına gelmiyordu.}}
Aslında çok boyutlu dizileri bağlamak imkansız mı?
Bildiğim kadarıyla saf 'Xaml' çok boyutlu diziler bağlamak mümkün değildir farkındayım olarak, işi yapmak için bir' IValueConverter' oluşturmak zorunda kalacaktır. –
Hmmm, bunu yapmak için şunu bilmeliyim ki ... bu Dizi olurdu ... ama dizi için bir ValueConverter var - bundan eminim. Onw'imi enjekte edebilir miyim? – Johannes
Bu bağlantıyı deneyin. Umarım https://nicoschertler.wordpress.com/2014/05/22/binding-to-a-2d-array-in-wpf/ –