다차원 배열의 특정 요소에 연결하기 위해 XAML 문자열을 공식화하는 데 어려움이 있습니다.WPF 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 차원 배열에 바인딩하는 방법을 알지 못합니다.
이 다음 XAML은 바인딩 생성자에 대한 두 개의 인수를 가진 것으로 해석됩니다 때문에
<Button Content="{Binding TwoDimension[1,1]}" Width="100" Height="50" />
가 컴파일되지 않습니다. 파서를 벗어날 수있는 방법이 있을까, 아니면 내가 알지 못하는 이것을 쓰는 다른 방법이 있을까요?
편집 :
난 그냥이
<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 eindimension ales Array. "} unfortunatelly C#이 제 모국어로 설치되었습니다. - 이것은 대략"{배열이 일차 배열 배열이 아니 었습니다. "}로 변환됩니다.} 다차원 배열을 바인딩하는 것은 실제로 불가능합니까?
순수한'Xaml'에서 다차원 배열을 바인딩 할 수 없다는 것을 알고있는 한, 작업을 수행하기 위해'IValueConverter'를 생성해야합니다. –
흠, 내가 할 수있는 타입을 알면 ... Array가 될 것입니다. 그러나 배열을위한 ValueConverter가 있습니다 - 저는 확신합니다. 내 onw을 주사 할 수 있습니까? – Johannes
이 링크를 사용해보십시오. 희망이 도움이 되리라. https://nicoschertler.wordpress.com/2014/05/22/binding-to-a-2d-array-in-wpf/ –