ottengo questo errore:Non riesci a trovare fonte per il legame con il riferimento 'RelativeSource FindAncestor'
Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.UserControl', AncestorLevel='1''
su questo legame:
<DataGridTemplateColumn Visibility="{Binding DataContext.IsVisible, RelativeSource={RelativeSource AncestorType={x:Type UserControl}},Converter={StaticResource BooleanToVisibilityConverter}}">
Il ViewModel è seduto come DataContext in UserControl. Il DataContext di DataGrid (che si trova in UserControl) è una proprietà all'interno di ViewModel, in ViewModel ho una variabile che dice se mostrare una determinata linea o meno, il suo binding fallisce, perché?
Qui la mia proprietà:
private bool _isVisible=false;
public bool IsVisible
{
get { return _isVisible; }
set
{
_isVisible= value;
NotifyPropertyChanged("IsVisible");
}
}
Quando si tratta di funzione: NotifyPropertyChanged il nulla evento PropertyChanged - media non è riuscito a registrare per l'associazione.
Va notato che ho più attacchi per ViewModel in modo tale che funziona, ecco un esempio:
Command="{Binding DataContext.Cmd, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
Ora viene visualizzato questo errore: Errore percorso BindingExpression: proprietà 'IsVisible' non trovata su 'oggetto' '' BindingProxy ' –
Whoops, che dovrebbe essere Data.IsVisible. –
Grande! Finalmente funziona, grazie mille. –