Ciao Al3xI98O,
You wrote on 17/02/2012 :
> Credo sia facile da spiegare quindi elenco i punti salienti della
> situazione (siamo in WPF con binding, senza MVVM quindi con il codice
> del code behind che funge da ViewModel):
> 1. [~ViewModel] ho la mia classe windows (nel .xaml.cs) che ha una
> ObservableCollection<PersonaggiCartoniAnimati>
> ElencoPersonaggiCartoniAnimati
> 2. [~View] nel .xaml ho una DataGrid bindata a ElencoPersonaggi con
> AutogenerateColumn a false. Ho quindi specificiato le colonne col
> binding.
> [Binding DataGrid --> ItemsSource="{Binding Path=ElencoPersonaggi,
> Mode=TwoWay}"
> Binding Column --> Binding="{Binding Path=IsDisney, Mode=TwoWay}"]
>
> Fin qui tutto ok avendo gestito "INotifyPropertyChanged". Adesso ho la
> necessità di interagire con il "click" della colonna IsDisney per fare
> dei controlli sulle altre colonne (diciamo che posso avere solo 1
> personaggio Disney...).
> Come fare? Se implemento "INotifyPropertyChanged" in
> PersonaggiCartoniAnimati intercetto la cosa ma NON nella classe in cui
> gestisco la view (in pratica non nel ViewModel)
a naso direi, non usare nella ObservableCollection un
PersonaggiCartoniAnimati ma crei un PersonaggiCartoniAnimatiViewModel
che wrappa PersonaggiCartoniAnimati
class PersonaggiCartoniAnimatiViewModel
{
public PersonaggiCartoniAnimatiViewModel( PersonaggiCartoniAnimati
source, IValidator sharedValidator )
{
sharedValidator.Register( this );
}
}
in questo modo puoi passare ad ogni singola "riga" altre cosa come un
validatore che conosce tutte le righe (Register) e quindi è in grado di
fare considerazioni sull'insieme dei dati.
> Al3x
.m
--
blog @ //
milestone.topics.it