gpt4 book ai didi

MVVM SelectionChanged 组合框不调用 'Set'

转载 作者:行者123 更新时间:2023-12-03 10:38:19 26 4
gpt4 key购买 nike

我的问题是我想在我的 ViewModel 中调用“SelectionChanged”事件。

我有一个 ComboBox(这里称为 ListPicker,它是一个电话应用程序):

<tool:ListPicker Name="txt_LZZ" 
ItemsSource="{Binding ZZR}" SelectedItem="{Binding MySelectedItem}" />

我在 ViewModel 中的属性如下所示:
    private List<string> _zzr;
public List<string> ZZR
{
get
{
_zzr = new List<string>();
_zzr.Add("Jahr");
_zzr.Add("Monat");
_zzr.Add("Woche");
_zzr.Add("Tag");
return _zzr;
}
set
{
_zzr = value;
RaisePropertyChanged(() => ZZR);
}
}

private string _mySelectedItem;
public string MySelectedItem
{
get
{
return _mySelectedItem;
}
set
{
if (value == _mySelectedItem)
return;
_mySelectedItem = value;
RaisePropertyChanged(() => MySelectedItem);
GetValues();
}
}

程序只调用一次 get 方法,而 _mySelectedItem 的值为“null”。我想要的是,当我在我的 Combobox (ListPicker) 中更改 SelectedItem 时,ViewModel 必须调用 GetValues 方法,该方法位于 MySelectedItem 的 setter 中。问题:-> ViewModel 不调用 setter。为什么?

最佳答案

尝试将绑定(bind)模式设置为TwoWay :

<tool:ListPicker Name="txt_LZZ" 
ItemsSource="{Binding ZZR}" SelectedItem="{Binding MySelectedItem, Mode=TwoWay}" />

我也不会在 getter 中实例化您的值集合,而是将 setter 设为私有(private),并为 View 模型中的属性分配一个值(例如,构造函数或激活 View 模型时)。

关于MVVM SelectionChanged 组合框不调用 'Set',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15945715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com