我有一个类型集合的依赖属性,当它的回调触发基于计数我需要设置屏幕上的一些控件的可见性。在WPF C中绑定可见性转换器#
但控件始终处于崩溃状态。 按照代码,一个控件始终可见。
XAML绑定
<TextBlock Text="106 search results for 'a'" Margin="5,0,100,0" Visibility="{Binding CountLabelVisibleReverse, Converter={StaticResource VisibilityConverter}}"/>
<StackPanel Grid.Row="1" Orientation="Horizontal" Margin="0,0,90,0"
Visibility="{Binding CountLabelVisible, Converter={StaticResource VisibilityConverter}}">
<TextBlock Text="Sort By" />
<ComboBox Style="{StaticResource ComboBoxStyle1}" Width="100" x:Name="ComboBoxSorting" ItemsSource="{Binding SortBy}" />
</StackPanel>
我的两个属性是
public bool CountLabelVisible { get; set; }
public bool CountLabelVisibleReverse { get; set; }
依赖属性回调
private static void ItemsCollectionChanged(DependencyObject obj, DependencyPropertyChangedEventArgs eventArgs)
{
var listingUserControl = (obj as ListingUserControl);
var itemsResult = (eventArgs.NewValue as List<ItemsResult>);
if (listingUserControl != null && itemsResult != null)
{
listingUserControl.CountLabelVisible = itemsResult.Count > 0;
listingUserControl.CountLabelVisibleReverse =itemsResult.Count <= 0;
}
}
转换代码是
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (parameter == null)
return (bool)value == false ? Visibility.Collapsed : Visibility.Visible;
return (bool)value ? Visibility.Collapsed : Visibility.Visible;
}
您的类是否实现INotifyPropertyChanged? – Harry
@Harry这是我的用户控件,我从某处读到INOtifyPropertyChanged实现用户控件不是正确的做法。请建议,如果是。 –
@MSingh这是不正确的 - “INotifyPropertyChanged”是一个简单的接口 - 没有更多 - 应该通过任何想要通知属性已经改变的任何东西来实现 - 这意味着用户控件,数据对象等。实施它,但它肯定有帮助。 – slugster