从静态切换到viewmodel范例会导致属性从combobox中消失
我确信对不良行为有一个非常合乎逻辑的解释(我最有可能的原因)。 但由于无知,我不确定如何解决它。 这就是发生的事情。
当我绑定到静态资源时,将自动显示属性Name (它由重写的ToString实现开始提供)。
然后,我尝试将代码重写为MVVM模式,因此我将其更改为此。
试图明确地设置路径不起作用(没有任何改变,程序执行良好,但在列表中没有显示任何内容。(提示是我做错了,因为intellisense只建议AllOptions而不是Name作为Path的替代。 )
因此,切换到视图模型会导致属性Name的文本消失。 在破解viewmodel的构造函数时,我可以看到所服务的元素数量(及其内容)是正确的,如下所示。
class Presenter { private IEnumerable _allOptions; public IEnumerable AllOptions => _allOptions.Where(element => true); public Presenter() { _allOptions = DataAccessor.GetStuff(); } }
我已经将viewmodel连接到视图,就像这样。
我可能错过了什么?!
编辑
我刚刚意识到绑定到组件的列表是空的 。 绑定不会发生。 我被展开的combobox欺骗了但是当我清空列表时,它似乎有一个默认的行数,它显示的是独立于添加元素的数量! 所以,问题是我的绑定没有设法绑定。
在博客中我看到博主视图模型实现了BindableBase 。 根据intellisense,我没有这样的课程。 是INotify ……相应的东西?