MVVM SelectionChanged组合框不';t调用&x27;设置';

MVVM SelectionChanged组合框不';t调用&x27;设置';,mvvm,combobox,viewmodel,selectionchanged,Mvvm,Combobox,Viewmodel,Selectionchanged,我的问题是我想在ViewModel中调用“SelectionChanged”事件 我有一个组合框(这里称为ListPicker,它是一个电话应用程序): ViewModel中的“我的属性”如下所示: private List<string> _zzr; public List<string> ZZR { get { _zzr = new List<string>();

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

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


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();
        }
    }
私有列表zzr;
公开名单
{
得到
{
_zzr=新列表();
_zzr.添加(“Jahr”);
_zzr.添加(“莫纳特”);
_zzr.添加(“Woche”);
_zzr.添加(“标签”);
返回zzr;
}
设置
{
_zzr=价值;
RaisePropertyChanged(()=>ZZR);
}
}
私有字符串_mySelectedItem;
公共字符串MySelectedItem
{
得到
{
返回_mySelectedItem;
}
设置
{
如果(值==\u mySelectedItem)
返回;
_mySelectedItem=值;
RaisePropertyChanged(()=>MySelectedItem);
GetValues();
}
}

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

尝试将绑定模式设置为双向:

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


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

尝试将绑定模式设置为双向:

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


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

我已经设置了ItemsSource,因为我认为这是不必要的&我不想关注这个。。。我将编辑我的第一篇帖子。谢谢!:)问题不是设置“模式=双向”。是的,我知道我不应该在getter中设置值,但这只是为了测试目的。我已经设置了ItemsSource,因为我认为这是不必要的&我不想关注这个。。。我将编辑我的第一篇帖子。谢谢!:)问题不是设置“模式=双向”。是的,我知道我不应该在getter中设置值,但它只是用于测试目的。