내가 아니 난에 ParentClass의 목록을 가지고 다음과 같은 문제WPF 목록 및 가시성
public abstract class ParentClass
{
public int Field{get;set;}
}
public class ChildrenClass1 : ParentClass
{
public int Field2{get;set;}
}
public class ChildrenClass2 : ParentClass
{
public int Field3{get;set;}
}
이 없습니다.
List<ParentClass> Parents = new List<ParentClass>();
이렇게하면 목록 상자에 바인딩됩니다.
<ListBox ItemsSource = "{Binding Parents}"/>
그리고 지금은 필드 2를 보여주고 싶은 ChildrenClass1이 유형이며이 ChildrenClass2 경우 내가 목록 상자 ItemTemplate을에서 입력란 3을 보여주고 싶은 경우.
<ListBox ItemsSource = "{Binding Parents}"/>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text = "{Binding Converter = {StaticResource Converter}}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
그리고 컨버터 항목의 유형을 확인하고 등등 ChildrenClass1하고있는 경우 필드 2를 반환해야합니다 :
내 머리에 온 첫 번째 솔루션은 같은 것을 할 것입니다.
하지만 솔루션보다는 해결 방법이라고 생각합니다. xaml 또는 이와 비슷한 형식을 검사 할 수있는 것이 있습니까? 이 문제를 어떻게 해결합니까?
편집 : DataTemplate을 획기적으로 변경하려는 경우 상황이 어떻습니까? 위의 해결 방법은 쓸모가 없습니다. 이 문제의 해결 방법은 다른 DataTemplate을 사용하여 2 개의 ListBox를 만들고 실제 유형 항목을 검사하는 변환기로 가시성을 설정하는 것입니다. 그러나 많은 바인딩 오류를 생성하고 응용 프로그램을 느리게하는 대신 2 개의 목록 상자를 생성합니다.
천재에 따라 올바른 값을 반환하는 프로퍼티/메소드 바인딩에 대해, 내가 필요로 무엇을 먹으 렴! :) 감사합니다! – MistyK
@Zbigniew - 이것이 허용 된 대답이어야합니다. 그렇지 않니? –
예, 저의 실수입니다. – MistyK