ListViews の可視性を計算にバインドするにはどうすればよいですか? DataContexts コレクション (IEnumerable) に複数のレコードがある場合にのみ、リストビューを表示したい
3 に答える
1
IEnumerable.Any()メソッドを呼び出すViewModelにプロパティCollectionAnyを作成できます。ViewModelからVisibilityを直接返すことはできますが、 MVVMパターンでは推奨されていません。したがって、 BooleanToVisibilityConverterなどのコンバーターを使用できます。コレクションをICollecitionViewインターフェイスにラップできる場合は、そのIsEmptyプロパティを使用できます。それがあなたの選択であれば、PropertyChangedイベントを発生させる必要はありません。
ブール値プロパティを可視性にバインドする例:
<!-- Inside your resources define the converter instance -->
<BooleanToVisibilityConverter x:Key="B2VConverter">
...
<ListView
...
Visibility="{Binding Path=CollectionAny, Converter={StaticResource B2VConverter}}"
...
/>
于 2012-05-10T09:27:28.560 に答える
1
リストビューの可視性をコンバーターを介してコレクションにバインドします
<ListView x:Name="listView"
ItemsSource="{Binding CollectionWithObjectsIn}"
Visibility="{Binding CollectionWithObjectsIn, Converter={StaticResource
CollectionCountToVisibilityConverter}}"/>
作成する必要がある CollectionCountToVisibilityConverter で、渡された Collection 内のアイテムの数を確認し、正しい Visibility 値を返します。
于 2012-05-10T09:34:01.597 に答える
0
にバインドできVisibility
ますHasItems
:
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=myList, Path=HasItems}" Value="False">
<Setter Property="UIElement.Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
于 2012-05-10T09:29:01.587 に答える