간단한 요구 사항이라고 생각했지만 현재 수행 방법을 찾는 데 어려움이 있습니다.WPF의 바운드 요소에 대한 축소 가능 목록 '
I (예를 들어 1 호선, 2 호선, 3 호선, 라인 4) 주소로 바인딩하고있어
내가 뭘 원하는 나는, 디스플레이
Line1
Line2
Line3
Line4
이다 그러나 어떤 라인은 비어 있거나 null의 경우 붕괴 '싶습니다' ':
Line1
Line3
Line4
나는 TextBlocks와 StackPanel을 시도했습니다 -하지만 난에 TextBlocks하는 방법을 알아 근무 한 적이없는'비어 있다면 '사라합니다.
<StackPanel>
<TextBlock Text="{Binding Line1}"></TextBlock>
<TextBlock Text="{Binding Line2}"></TextBlock>
<TextBlock Text="{Binding Line3}"></TextBlock>
<TextBlock Text="{Binding Line4}"></TextBlock>
</StackPanel>
또한 멀티 바인딩을 시도했지만 StringFormat에서 줄 바꿈을 얻는 방법을 찾지 못했습니다.
<TextBlock>
<TextBlock.Text>
<!-- Doesn't work: "System.FormatException" -->
<MultiBinding StringFormat="{}{1}\n{2}\n{3}\n{4}">
<Binding Path="Line1"/>
<Binding Path="Line2"/>
<Binding Path="Line3"/>
<Binding Path="Line4"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
아이디어가 있으십니까?
그것은 못생긴입니다,하지만 나는 그것을 좋아한다고 생각합니다. 왜냐하면 클래스가 데이터의 표시 방법에 대해 걱정할 필요가 없기 때문입니다. – Benjol
또한, TextBlock에 적용된 전역 스타일을 제거하고 싶지 않다면 스타일 선언에 BasedOn = "{StaticResource {x : Type TextBlock}}"을 추가하십시오. (제가 올바르게 생각한 것 같습니다) –
@Benjol : 사용중인 경우 MVVM, 이것은 훨씬 더 자연스러워집니다. 즉, VM이 상황이 표시되는 방식에 대해 걱정하고 집계를 수행하는 읽기 전용 속성이있는 것입니다. –