我开始使用wpf和mvvm模式在c#中创建一个程序来学习这种程序语言。我感到很遗憾,我终于遇到了无法使用谷歌解决的问题。但我试着准确。
起初我present你是GUI,所以我可以更容易地解释我的问题。
MainWindow的xaml文件来自here。
如你所见,这不是一个严肃而重要的计划,我只是想学习一些技巧。
现在出现主要问题: 我需要页脚中第二个ListView(耗材)的SelectedItem属性。我认为这不会是一个严重的问题,因为我可以使用相对路径和列表视图的名称将其绑定到所选项目。一旦我将一个项目添加到此列表视图,这不起作用并导致空引用错误。我仔细检查了代码,我确信那里没有出错。所以我认为问题是,它是一种后代的ui元素。
我的下一个尝试是在主视图模型中创建一个绑定到所选项目的新属性。你可以在第136行找到它。但是正如我发现的那样,如果我点击一个项目,这也会导致我出现System.NullReferenceException。我认为这是因为这个属性是只读的。我不知道该怎么办。 是否还有其他可能将SelectedItem绑定为页脚的DataContext ?
我的第二个问题是关于第27行。 TabControl应始终自动选择第一个选项卡。但它只是每隔一段时间才会成功。这很有趣。如果我向下滚动冠军组合框,第一个标签会显示:选中 - 未选中 - 选中 - ...
我的第三个也是最后一个问题大约是72 ,类似于第50行(DataContext也一样)但是你看到第50行的itemtemplate的ContextMenu的ICommand有效,而contextConu (l.72)不会调用Icommand。怪异。
这是一个有趣的项目,所以如果我的信息不够,我可以为您提供源代码。 - 抱歉,只允许两个超链接 -
请帮帮我。我对这种意想不到的行为感到有些困惑。我没有发现任何可以帮助我的事情,如果这些问题的答案很简单,我很抱歉:P
只是强调它:主要问题是我真正需要答案的唯一问题。第二个可以以编程方式解决。为了解决第三个问题,我可以删除此功能。
我很满意每一个提示!
答案 0 :(得分:0)
没有完成整个问题,但你应该将所选项绑定到你的视图模型属性(双向绑定),然后将另一个UIElement绑定到这个视图模型属性(可能是单向绑定或检查值相等而不是导致stackoverflow异常)