首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MVVM将combobox内容绑定到字典中的列表

MVVM将combobox内容绑定到字典中的列表
EN

Stack Overflow用户
提问于 2018-07-18 14:25:28
回答 2查看 432关注 0票数 0

问题出在显示多个组合框的表单上--每个组合框的内容都是一个整数范围。可以有多个组合框,每个组合框的整数范围可以不同,并且这些信息都不是事先知道的。

XAML中这些组合框的DataTemplate如下所示

代码语言:javascript
运行
AI代码解释
复制
<DataTemplate x:Key="ListComboboxTemplate">
        <ComboBox Margin="0,0,0,0" MinWidth="230" Height="22" ItemsSource="{Binding Path=DataContext.ListBoxContent, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"
                  ... >

ListBoxContent属性是一个字符串的ObservableCollection (我不知道为什么它是可观察的-内容一旦设置就不会改变)。

当有2个或更多具有整数范围的组合框并且范围不同时,错误就会出现-加载它们的循环只是将它计算的列表分配给ListBoxContent属性;结果是所有组合框都以相同的范围结束(这当然是计算出的最后一个)。

我猜我需要的是ViewModel,而不是一个简单的列表,就像字典一样,键控到一个字符串*,值是字符串的ObservableCollection。

*显示的窗体在绑定到字符串属性的组合框的左侧有一个文本块-此值将是字典的键。

我不知道如何在不打破常规的情况下做到这一点。我认为是某种设置组合框内容的命令,但我不知道如何获得命令所需的键。基于这种想法,我也可能大错特错。

EN

回答 2

Stack Overflow用户

发布于 2018-07-18 14:39:07

您可能应该有一个包含项目列表的视图模型,每个项目都有另一个用于ComboBox的项目列表:

代码语言:javascript
运行
AI代码解释
复制
public class ListItem
{
    public IEnumerable<string> ComboBoxItems { get; set; }
}

public class ViewModel
{
    public ObservableCollection<ListItem> ListItems { get; } 
        = new ObservableCollection<ListItem>();
}

并使用ItemsControl将其可视化:

代码语言:javascript
运行
AI代码解释
复制
<ItemsControl ItemsSource="{Binding ListItems}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding ComboBoxItems}"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

如下所示进行初始化:

代码语言:javascript
运行
AI代码解释
复制
public MainWindow()
{
    InitializeComponent();

    var vm = new ViewModel();
    vm.ListItems.Add(new ListItem { ComboBoxItems = new string[] { "1.1", "1.2" } });
    vm.ListItems.Add(new ListItem { ComboBoxItems = new string[] { "2.1", "2.2" } });

    DataContext = vm;
}

甚至可能不需要在ViewModel类中有一个ObservableCollection。

票数 0
EN

Stack Overflow用户

发布于 2018-07-19 10:56:02

我最终创建了一个字符串列表。

当绑定属性的Get()被调用时,有一个函数可以检索列表中的下一个列表并传递它。

这有点俗气,但也是最小的代码更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51404555

复制
相关文章
C# WPF mvvm模式下combobox绑定(list<enum>、Dictionary<int,string>)
ComboBox是一个非常常用的界面控件,它的数据源ItemsSource既可以绑定一个List列表,也可以是一个字典,本篇文章就讲这些内容展开讲解。
用户9127601
2021/11/01
5.8K0
python中列表排序,字典排序,列表中的字典排序
key= lambda dict1:dict1[0] #dict1[0]表示按键,dict1[1]表示按值。
用户8346838
2021/03/10
9.2K0
WPF 列表右键菜单比较符合 MVVM 的命令绑定方法
群里小伙伴问我如何在 ListView 的右击的时候知道右击的是哪一项,他想要获取对应的行信息。他使用的是 GridView 做的,于是我告诉他需要自己写 ItemContainerStyle 在 GridViewRowPresenter 里添加右键的逻辑。但是这样写不清真,我问到了他的本质问题其实只是想要做右键菜单。刚好我在写一个测试应用,用于测试我的文件下载库,此时需要用到在右击某一个下载项的时候,拿到当前下载项的信息,给出右键菜单。我不使用小伙伴的逻辑,就按照我自己会采用的写法,我认为这样写比较符合 WPF 框架的设计,下面让我告诉大家我的用法,十分简单
林德熙
2020/07/28
3.1K0
Python - 从字典列表中删除字典
字典是python的一个非常常用的功能,用于根据用户需要在其中存储数据。另一个典型的过程涉及编辑或操作此数据。要成为一名高效且快速的程序员,您必须弄清楚如何从字典列表中删除字典。有许多技术可以从词典列表中删除字典,本文将介绍这些技术。
很酷的站长
2023/08/11
3200
Python - 从字典列表中删除字典
listview布局操作----将item绑定到activity中
listview分两部分: 1.activity 2.item 将item通过setAdapter绑定到activity。 activity布局如下: <?xml version="1.0" enco
用户4148957
2022/06/14
1K0
listview布局操作----将item绑定到activity中
Extjs mvvm store绑定
view ... viewModel: { type: 'view1.mainviewmodel' }, ... bind:{ store: '{store1}' } view model stores: { store1: { ... } }
路过君
2020/06/19
6850
Python - 删除列表中的重复字典
Python 是一个非常广泛使用的平台,用于 Web 开发、数据科学、机器学习以及自动化执行不同的过程。我们可以将数据存储在python中,以不同的数据类型,例如列表,字典,数据集。python字典中的数据和信息可以根据我们的选择进行编辑和更改
很酷的站长
2023/08/11
4011
Python - 删除列表中的重复字典
Python中的列表、元祖、字典的区别
定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的eg:aList=[123,'abc',4.56,['inner','list'],7-9j] 1.list(str):将str转换成list类型,str可以使字符串也可以是元组类型2.aList.append('test'):追加元素到列表中去3.del aList[1]:删除列表中下标为1的元素del aList:删除整个列表4.cmp(list1,list2):比较两个列表的大小5.len(
py3study
2020/01/09
2.8K0
列表、字典、集合中筛选数据
传统迭代法 data = [1,5,-3,-2,8,0,9] res = [] for x in data: if x >=0: res.append(x) print(res) python中更好的解决方案 列表 filter函数filter(lambda x:x>=0,data) from random import randint data = [randint(-10,10) for x in range(10)] a = filter(lambda x:x>=0,d
听城
2018/04/27
1.7K0
WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换
WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换
独立观察员
2022/12/06
2K0
WPF ComboBox 使用 ResourceBinding 动态绑定资源键并支持语言切换
SwiftU:将状态绑定到UI控件
SwiftUI的@State属性包装器允许我们自由修改视图结构体,这意味着当程序更改时,我们可以更新视图属性以匹配。
韦弦zhy
2020/03/20
3K0
Python将两个列表转换为字典
最开始,我是想用2层for循环实现,但是发现太麻烦了。最简单的方法,使用zip()函数即可。
py3study
2020/08/26
5.1K0
将原生事件绑定到组件
官方的例子是晦涩难懂的,除非已经完全理解了,在这里给大家只用通俗易懂的3个例子解释这个问题
砖业洋__
2023/05/06
7140
将原生事件绑定到组件
VBA实用小程序:将Excel中的内容输入到PowerPoint
在将Excel中的内容输入到Word中时,可以利用Word的书签功能,而将Excel中的内容输入到Powerpoint要困难得多,因为它没有书签,甚至不允许为幻灯片上的对象命名,那么,怎么办呢?可以在代码中对其进行寻址。
fanjy
2023/02/14
1.8K1
VBA实用小程序:将Excel中的内容输入到Word
将Excel数据输入到Word文档并不难,但这会破坏书签,如果你在对Word文档进行了大量修改后发现想要重新从Excel中输入数据,那可能会令人沮丧。我想要一个可以根据需要经常重复的将Excel数据输入到Word,这意味着在复制完成后要重新创建书签。
fanjy
2023/02/14
2.2K0
关于webform中控件的列表数据的绑定
1、使用这些控件的方法主要是以下步骤;
静心物语313
2020/03/24
1.9K0
关于webform中控件的列表数据的绑定
MVVM绑定多层级数据到TreeView并设置项目展开
昨天在做项目的时候碰到了这个问题,发现通常我们定义的数据不法绑定到控件上,接下来我将讲一下我是怎么解决这个问题的。
yoyofx
2018/09/05
1.1K0
python3-列表中存储字典
# Auther: Aaron Fan #示例1: #定义几个字典 alien_0 = {"color":"green", "points":5} alien_1 = {"color":"yellow", "points":10} alien_2 = {"color":"red", "points":15} #把字典存入到列表aliens中 aliens = [alien_0, alien_1, alien_2] #遍历这个列表 for alien in aliens:    print(alien
py3study
2020/01/06
1.4K0
Python 技术篇-读取文件,将内容保存dict字典中。去掉字符串中的指定字符方法。dict字典的遍历。
要读取的文件内容如下,txt格式。 启用微信通知:是 启用邮件通知:是 读取的每行内容后包括换行符"\n",用strip()就可以很方便去掉。 d = {} # 定义一个dict字典 f = open("config.txt", "r") for i in f: i = i.strip("\n") # 去掉换行符 index = i.index(":") # 获得:的索引位置 d[i[:index]] = i[index+1:] print(i[:index]) print(i
小蓝枣
2020/09/23
1.9K0
MVVM 框架解析之双向绑定
更好的阅读体验,点击 原文地址 项目地址 MVVM 框架 近年来前端一个明显的开发趋势就是架构从传统的 MVC 模式向 MVVM 模式迁移。在传统的 MVC 下,当前前端和后端发生数据交互后会刷新整
牧云云
2018/05/02
2.1K1
MVVM 框架解析之双向绑定

相似问题

在WPF MVVM中将内容列表绑定到ComboBox

142

将字典绑定到combobox

40

MVVM绑定枚举到Combobox

15

将ComboBox绑定到字典,并将选定的绑定到字典键

10

在MVVM中,我如何将MODEL中的列表绑定到combobox?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文