반응형
WPF 목록 상자 빈 데이터 템플릿
항목이 없는 ListBox 컨트롤을 사람들이 어떻게 처리하는지 궁금합니다. 예를 들어, 검색 결과 목록을 바인딩하고 싶지만 결과가 없으면 "No results found"를 표시하고 싶습니다.
현재 이 문제를 해결하는 방법은 결과 집합 카운트 = 0인 경우 목록 상자를 숨기고 "No results found" 메시지가 있는 레이블을 표시하는 것입니다.이상적으로는 ASP.NET 데이터 그리드가 비어 있으면 좋겠습니다.템플릿 솔루션.
건배.
나는 이 코드로 어느 정도 성공을 거두었습니다.
<Style TargetType="ListBox" x:Key="ListStyle" BasedOn="{StaticResource {x:Type ListBox}}">
<Style.Triggers>
<DataTrigger
Binding="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Items.Count}"
Value="0"
>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBlock>No items to display</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
참고로, @Matt Hamilton의 수락된 답변을 기반으로, 저는 바인딩이 필요하지 않은 변형을 만들었습니다.HasItems
의 재산.ListBox
빈 템플릿을 트리거하려면:
<ListBox.Style>
<Style x:Key="EmptyListStyle"
TargetType="ListBox"
BasedOn="{StaticResource {x:Type ListBox}}">
<Style.Triggers>
<!-- Use ListBox.HasItems instead of Binding -->
<Trigger Property="HasItems" Value="False">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBlock>No items to display</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</ListBox.Style>
이렇게 하면 목록이 바인딩되는 속성 이름을 알 필요 없이 스타일을 전체적으로 사용할 수 있습니다.에 바인딩할 때 유용하다는 것을 알았습니다.CollectionViewSource
XAML에 정의되어 있습니다.
저는 이 방법의 단점을 잘 모릅니다. 의견이 있으시면 환영합니다.
언급URL : https://stackoverflow.com/questions/699881/wpf-listbox-empty-datatemplate
반응형
'programing' 카테고리의 다른 글
Eclipse, 정규식 검색 및 바꾸기 (0) | 2023.05.25 |
---|---|
GitHub의 명령줄에서 pull 요청을 발행할 수 있습니까? (0) | 2023.05.25 |
git rev-parse는 무엇을 합니까? (0) | 2023.05.25 |
다른 문자열의 단어 목록 확인 (0) | 2023.05.25 |
postgres 필드의 데이터 유형 선택 (0) | 2023.05.25 |