多项选择组合框如何存储多项选择MVVM

时间:2020-01-23 14:44:07

标签: wpf mvvm

我有这样的组合框

def df_eval(data):
    data_eval = data.copy()
    df_price = []
    for i in data_eval.index:
        var = data_eval.at[i, 'var']
        url = ("http://blablabla/params&cid={}".format(var))
        r_json = requests.get(url).json()
        df = json_normalize(r_json)
        df_price.append(df['price'])
        print(df_price)

data_eval['price_eval'] = df_price
return data_eval

但是,它允许我从ListOfSemesters中仅选择1个组件。 我需要进行更改以允许用户一次选择多个学期进行显示,所以我创建了这样的内容

<ComboBox Margin="5,0" Width="120" Height="25" ItemsSource="{Binding ListOfSemesters}" 
                              SelectedItem="{Binding SelectedSemester, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" DisplayMemberPath="DisplayMember"

在我的DetailViewModel类中,我将ListOfSemester定义为LookUp,它具有2个属性-DisplayMember和ID

在构造函数中:

<ComboBox HorizontalAlignment="Stretch" Width="120" Height="30" Margin="10,5,10,0" ItemsSource="{Binding ListOfSemesters}" SelectedItem="{Binding SelectedSemester, Mode=TwoWay}" >
                        <ComboBox.ItemTemplate>
                            <DataTemplate>
                                <CheckBox  Content="{Binding DisplayMember}" IsChecked="{Binding IsChecked}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
                            </DataTemplate>
                        </ComboBox.ItemTemplate>
                    </ComboBox>

在课堂上:

ListOfSemesters = new ObservableCollection<LookUpItem>();

在我拥有如SelectedSemester之类的属性之前,它仅包含一个ID,现在当用户选择多个学期时,我必须将其存储,该怎么做? 选定学期之前

public ObservableCollection<LookUpItem> ListOfSemesters { get; }

打开这个DetailView时,我会用LoadAsync方法加载一个学期

 public LookUpItem SelectedSemester
        {
            get { return selectedSemester; }
            set
            {
                selectedSemester = value;

                OnPropetyChanged();
            }
        }

我必须实现什么,以及如何存储用户的多个选择?以及添加到xaml组合框中的内容

0 个答案:

没有答案