Ich habe ein StackPanel, das ich ausblenden möchte, wenn im selben Fenster kein ausgewähltes Element aus einer ListView vorhanden ist. Derzeit, wenn ich das Fenster öffne, gibt es kein ausgewähltes Element und das StackPanel ist ausgeblendet, aber wenn ich etwas aus der ListView wähle, tritt keine Änderung auf.NullToVisibilityConverter wird nicht durch Auswahländerung ausgelöst
Ich bin Bindung der SelectedItem in der Listview wie:
<ListView
MinHeight="0"
MaxHeight="500"
Margin="10,10,10,0"
Background="#e7f5f4"
BorderThickness="0"
ItemsSource="{Binding Issues}"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
SelectedItem="{Binding SelectedIssue}"
SelectionMode="Single">
Wo „SelectedIssue“ ist eine benutzerdefinierte Klasse Eigenschaft in meinem Viewmodel (mein ganzes Fenster hat die gleiche Datacontext). Ich Bindung zur Zeit die Eigenschaft Sichtbarkeit meines Stackpanel als:
<StackPanel
Grid.Column="1"
Margin="13,0,0,5"
VerticalAlignment="Bottom"
Background="#ebf7f6"
Orientation="Horizontal"
Visibility="{Binding SelectedIssue,
Converter={StaticResource NullToVisibilityConverter},
UpdateSourceTrigger=PropertyChanged}">
Und mein Konverter ist:
public class NullToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value == null ? Visibility.Collapsed : Visibility.Visible;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Was bin ich?
EDIT: Hier ist mein Getter/Setter
private Issue _selectedIssue;
public Issue SelectedIssue
{
get { return _selectedIssue; }
set { Set(ref _selectedIssue, value); }
}
public void RaisePropertyChanged([CallerMemberName]string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public bool Set<T>(ref T storage, T value, [CallerMemberName]string propertyName = null)
{
if (Equals(storage, value))
return false;
storage = value;
RaisePropertyChanged(propertyName);
return true;
}
Können Sie die Getter/Setter für SelectedIssue zeigen? Vermutlich fehlt nur ein Ereignis mit geänderter Eigenschaft, wenn sich der SelectedIssue-Wert ändert. Die Benutzeroberfläche wird nicht wissen, der Wert hat sich geändert, es sei denn, Sie sagen es ... – CodexNZ
gerade hinzugefügt. Ich hebe die Veranstaltung auf, oder? –
Sind im Ausgabefenster von Visual Studio verbindliche Fehler zu sehen, wenn die Bindungen wirksam werden? Manchmal sind sie leicht zu übersehen. –