【问题标题】:wpf cascaded combobox in Datagrid with MVVM带有MVVM的Datagrid中的wpf级联组合框
【发布时间】:2023-03-14 18:30:02
【问题描述】:

我正在寻找在 WPF GridView 中绑定几个级联组合框:

以下是我的要求:

我想开发人员记录的网格视图,其中包含他们的姓名、州名和城市名称。当然,城市组合框数据取决于所选的州。

数据网格项源是 ObservableCollection,Person 类如下所示:

class Person
{
    name string;
    state string;
    city string;
}

Datagrid 窗口的视图模型如下所示:

class DatagridWindowViewModel
{
    ObservableCollection<Person> PersonsList {get; set;}
}

而且我不想在这个类中保留州和城市列表。在更改状态时,我应该从枚举中正确填充 Cities 组合框。

我有州和市的枚举。

1 个枚举,用于具有州名的州(比如 n 个州)。 然后我没有。城市枚举数

最好的方法是什么,这样我就可以避免在 MVVM 之后的 Person 类中保留列表(即,我不想有任何代码)。

我是 SO 新手,如果我的问题不清楚或者我无法以正确的方式提出问题,请告诉我。

【问题讨论】:

    标签: c# wpf mvvm


    【解决方案1】:

    在您的 VM 中保留城市和州的 Id,将组合绑定到将从枚举生成的名称-值对列表,然后将它们选择的值设置为个人的城市 Id/州 Id。

    【讨论】:

    • 城市和州的列表将保留在哪里以及如何绑定到 xaml,这就是我要查找的内容
    • 您可以将它们保留为静态资源。仅填充列表一次,例如在第一次调用时缓存它们以备后用。要从枚举中获取名称/值对列表,请检查 System.Enum API(GetNames 和 GetValues 方法)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 2014-10-14
    • 2022-01-06
    • 1970-01-01
    • 2017-09-02
    • 2023-03-18
    • 2023-03-05
    相关资源
    最近更新 更多