2017-07-09 1 views
0

ich versuche, von observerCollection zu Kippschalter (MahApp) Bindung aber es ist nichtvon ObserverCollection zu Kippschalter Bindung 'IsChecked'

XAML arbeiten:

<mah:ToggleSwitch Name="switchLEDA" IsChecked="{Binding ConfParams[0], Mode=TwoWay}" Content="" Grid.Column="2" Grid.Row="2"/> 

Ansichtsmodell:

public ObservableCollection<bool> ConfParams 
    { 
     get { return _chromaConfigurationModel.ConfParams; } 
     set { _chromaConfigurationModel.ConfParams = value; } 
    } 

Modell :

private ObservableCollection<bool> _confParams; 
public ObservableCollection<bool> ConfParams 
    { 
     get { return _confParams; } 
     set { _confParams = value; } 
    } 

kann mich jemand bitte halppen?

+1

Wenn Sie eine tatsächliche Antwort, Sie müssen eine vollständige Frage, eine Dazu gehört ein gutes [mcve], das das Problem zuverlässig reproduziert, sowie eine bessere Problembeschreibung als "es ist nicht Arbeit". Aufgrund des winzigen Codes, den Sie freigegeben haben, scheint es jedoch wahrscheinlich zu sein, dass Sie kein "PropertyChanged" -Ereignis auslösen, wenn sich der Wert ändert. –

Antwort

0

Sie können den Wert eines bool in ObservableCollection<bool> nicht ändern, damit Ihre TwoWay Bindung nicht funktioniert. bool ist ein Werttyp, der kopiert wird, wenn er übergeben wird.

Sie sollten auf eine Eigenschaft binden, die tatsächlich eingestellt werden kann:

public class ConfParams 
{ 
    public bool Value { get; set; } 
} 

Ansicht Modell:

public ObservableCollection<ConfParams> ConfParams 
{ 
    get { return _chromaConfigurationModel.ConfParams; } 
    set { _chromaConfigurationModel.ConfParams = value; } 
} 

Ausblick:

<mah:ToggleSwitch Name="switchLEDA" IsChecked="{Binding ConfParams[0].Value, Mode=TwoWay}" Content="" Grid.Column="2" Grid.Row="2"/>