我有一個類型集合的依賴屬性,當它的回調觸發基於計數我需要設置屏幕上的一些控件的可見性。在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