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
你应该将绑定设置为" two - way "模式:
SelectedItem="{Binding SelectedCategory.BudgetPeriod, Mode=TwoWay}">