SelectedItem not updated

本文关键字:updated not SelectedItem | 更新日期: 2023-09-27 18:17:23

我有一个带有列表框的UWP应用程序,该列表框绑定到一个枚举列表,以使用单选按钮显示不同的选项。

我想要的是,当我选择一个项目(例如每年)时,在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

View (code Behind):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

SelectedItem not updated

你应该将绑定设置为" two - way "模式:

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