2016-11-11 5 views
-1

ich ein UWP-App mit einem Listenfeld, das eine Liste der Aufzählungen gebunden ist mit einem Radio, um die verschiedenen Optionen anzuzeigen.SelectedItem nicht aktualisiert

Was ich will, ist, dass, wenn ich einen Artikel (zB jährlich) auswählen, die auf dem SelectedCategory die BudgetPeriod zum Enum jährlich geändert wird. Was ich versucht ist folgende:

Mein Listbox:

<ListBox Margin="0,0,0,12" 
         ItemsSource="{Binding BudgetPeriods}" 
         SelectedItem="{Binding SelectedCategory.BudgetPeriod}"> 
        <ListBox.ItemContainerStyle> 
         <Style TargetType="ListBoxItem"> 
          <Setter Property="Template"> 
           <Setter.Value> 
            <ControlTemplate TargetType="ListBoxItem"> 
             <RadioButton Content="{TemplateBinding Content}" IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsSelected}" /> 
            </ControlTemplate> 
           </Setter.Value> 
          </Setter> 
         </Style> 
        </ListBox.ItemContainerStyle> 
       </ListBox> 

Selected Category Property: 
public CategoryViewModel SelectedCategory 
     { 
      get { return selectedCategory; } 
      set 
      { 
       selectedCategory = value; 
       RaisePropertyChanged(); 
      } 
     } 

Liste der Aufzählungen:

public List<BudgetPeriod> BudgetPeriods => new List<BudgetPeriod> 
    { 
     BudgetPeriod.Monthly, 
     BudgetPeriod.Yearly 
    }; 

die propety in SelectedCategory.BudgetPeriod Leider ist immer monatlich (Die erste Auswahl) und ist nicht ändern, wenn ich etwas anderes auswähle.

Das Projekt ist Open Source, so dass Sie den gesamten Code aswell Prüfung können: https://github.com/NPadrutt/MoneyFox.Windows/tree/budget

Links zu den entsprechenden Klassen: Ansicht Modell: https://github.com/NPadrutt/MoneyFox.Windows/blob/budget/Src/MoneyFox.Business/ViewModels/ModifyCategoryViewModel.cs

Modell: https://github.com/NPadrutt/MoneyFox.Windows/blob/budget/Src/MoneyFox.Foundation/DataModels/CategoryViewModel.cs

Ausblick: https://github.com/NPadrutt/MoneyFox.Windows/blob/budget/Src/MoneyFox.Windows/Views/ModifyCategoryView.xaml

Ansicht (Code Hinter): https://github.com/NPadrutt/MoneyFox.Windows/blob/budget/Src/MoneyFox.Windows/Views/ModifyCategoryView.xaml.cs

Android Layout: https://github.com/NPadrutt/MoneyFox.Windows/blob/budget/Src/MoneyFox.Droid/Resources/layout/activity_modify_category.axml

+0

hat die Eigenschaft Ereignis geändert BudgetPeriod Feuer? – pix

+0

Sie meinen auf der SelectedCategory? Ja tut es. Ich muss hinzufügen, dass es eine ähnliche Implementierung für Android mit der gleichen VM mit MvvmCross gibt und es funktioniert dort, aber nicht unter Windows. Also ist die VM im Allgemeinen in Ordnung, denke ich. – NPadrutt

+0

können Sie bitte den Link zur github-Klasse in einem Kommentar hinzufügen? – pix

Antwort

1

Sie sollten die Bindung in "TwoWay" Modus:

SelectedItem="{Binding SelectedCategory.BudgetPeriod, Mode=TwoWay}">

+1

damm .. natürlich .. danke! :) – NPadrutt

Verwandte Themen