2016-11-11 42 views
-1

我有一個UWP應用程序,它帶有一個列表框,它綁定到一個枚舉列表,用一個單選按鈕顯示不同的選項。SelectedItem not updated

我想要的是,當我選擇一個項目(例如每年)時,SelectedCategory上的BudgetPeriod將每年更改爲enum。我試過如下:

我的列表框:

<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(); 
      } 
     } 

枚舉列表:

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

不幸的是,在歡迎使用屬性是SelectedCategory.BudgetPeriod總是每月(第一選擇),而不是當我選擇別的東西時會改變。

該項目是開源的,所以你可以檢出整個代碼藏漢:https://github.com/NPadrutt/MoneyFox.Windows/tree/budget

鏈接到相關的類: 視圖模型: https://github.com/NPadrutt/MoneyFox.Windows/blob/budget/Src/MoneyFox.Business/ViewModels/ModifyCategoryViewModel.cs

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

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

視圖(代碼後面): https://github.com/NPadrutt/MoneyFox.Windows/blob/budget/Src/MoneyFox.Windows/Views/ModifyCategoryView.xaml.cs

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

+0

是否BudgetPeriod火屬性更改事件? – pix

+0

你的意思是在SelectedCategory上?是的,它確實。我必須補充一點,對於使用與MvvmCross相同的虛擬機的android有一個類似的實現,它可以在那裏工作,但不能在Windows上工作。所以我認爲虛擬機總體來說是好的。 – NPadrutt

+0

你可以在評論中添加鏈接到github類嗎? – pix

回答

1

應設置在結合 「雙向」 模式:

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

+1

damm ..當然..謝謝! :) – NPadrutt