私は2つの要素を持っています:リストボックスと "このリストは空です"というメッセージです。私はリストボックスのItemsSource
が空であることに彼らの可視性をバインドしたいと思います。しかし、私はこれを行う方法がわからないんだけど:ItemsSource
が空であるにもかかわらずSilverlight:可視性にバインドするのが難しい
<TextBlock Text="No favorite searches yet. Add some by searching, then clicking 'Add to Favorites'"
Padding="10,0"
VerticalAlignment="Center"
Visibility="{Binding Path=FavoriteFilters.IsEmpty, Converter={StaticResource visibilityConverter}}"
/>
<ListBox ItemsSource="FavoriteFilters"
x:Name="favoriteFiltersList"
Visibility="{Binding Path=FavoriteFilters.IsEmpty, Converter={StaticResource visibilityConverter}}">
<ListBox.ItemTemplate>
<DataTemplate>
<my:FavoriteFilterLink />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
彼らは、両方とも表示されます。また、ListBox
の条件を逆にする方法がわかりません。
可視性コンバータ:
public class VisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is bool?)
{
if (string.IsNullOrEmpty((string)parameter))
{
return (value as bool?).Value ? Visibility.Visible : Visibility.Collapsed;
} else
{
return (value as bool?).Value ? Visibility.Collapsed : Visibility.Visible;
}
}
throw new ArgumentException();
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
はどのようにして、コンバータにパラメータを渡すのでしょうか? –
@Rosarch - 回答が更新されました。 – ChrisF
ありがとうございます。私はリンクが壊れていると思う。 –