Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取SelectedItem作为完全独立的Uielement的DataContext_C#_Wpf_Xaml_Mvvm_Selecteditem - Fatal编程技术网

C# 获取SelectedItem作为完全独立的Uielement的DataContext

C# 获取SelectedItem作为完全独立的Uielement的DataContext,c#,wpf,xaml,mvvm,selecteditem,C#,Wpf,Xaml,Mvvm,Selecteditem,我开始使用wpf和mvvm模式用c编写程序来学习这种程序语言。我感到很抱歉,我终于有了我无法用谷歌解决的问题。但我尽量做到精确 首先,我向您介绍GUI,以便更容易地解释我的问题 主窗口的xaml文件将出现 正如你所看到的,这不是一个严肃而重要的节目,我只是为了学习一些技巧 现在是我的主要问题: 我需要页脚中第二个ListView耗材的SelectedItem属性。我认为这不会是一个严重的问题,因为我可以使用相对路径和listview的名称将它绑定到所选项目。这不起作用,并且在我将一个项目添加到此

我开始使用wpf和mvvm模式用c编写程序来学习这种程序语言。我感到很抱歉,我终于有了我无法用谷歌解决的问题。但我尽量做到精确

首先,我向您介绍GUI,以便更容易地解释我的问题

主窗口的xaml文件将出现

正如你所看到的,这不是一个严肃而重要的节目,我只是为了学习一些技巧

现在是我的主要问题: 我需要页脚中第二个ListView耗材的SelectedItem属性。我认为这不会是一个严重的问题,因为我可以使用相对路径和listview的名称将它绑定到所选项目。这不起作用,并且在我将一个项目添加到此listview时就导致了空引用错误。我仔细检查了代码,我确信我没有做错什么。所以我认为问题是,它是一种后代ui元素

我的下一次尝试是在我的主视图模型中创建一个绑定到所选项目的新属性。你可以在第136行找到这个。但我发现,如果单击某个项目,这也会导致System.NullReferenceException异常。我想这是因为这个属性是只读的。我不知道该怎么办。是否有其他可能将SelectedItem绑定为页脚的DataContext

我的第二个问题是关于第27行的。TabControl应始终自动选择第一个选项卡。但它只会使它每隔一秒出现一次。这很有趣。如果我向下滚动Champion组合框,第一个选项卡将显示:selected-unselected-selected-

我的第三个也是最后一个问题是关于72的,这与第50行类似。DataContext也一样,但是itemtemplate的ContextMenu的ICommand可以工作,而ContextMenu l。72不调用Icommand。奇怪

这是一个有趣的项目,所以如果我的信息不够,我可以向您提供源代码。 -对不起,只允许两个超链接-

请帮帮我。我只是对这种出乎意料的行为感到有点困惑。我还没有找到任何可以帮助我的东西,如果这些问题的答案很简单,我很抱歉:P

只是想强调一下:主要问题是我唯一真正需要答案的问题。第二个问题可以通过编程解决。为了解决第三个问题,我可以删除这个特性


我为每一个暗示感到高兴

尚未完成整个问题,但您应该将所选项目双向绑定到视图模型属性,然后将另一个UIElement绑定到此视图模型属性(可能是单向绑定)或检查值是否相等以避免导致stackoverflow异常

将问题拆分为多个部分多个问题每个问题的示例代码。这是一个大问题,很难一次读完。人们也可能只知道你的一个问题的答案,所以这也让他们更容易回答。如果你读了xaml文件的第136行,你就会看到我已经做了这件事。一旦我添加一个项,它就会给我一个System.NullReferenceException。测试了双向绑定和单向源。无论如何,谢谢。请尝试在其中放置一个值转换器,看看是什么导致了空引用。很抱歉,如果您愿意,我可以为您制作一个视频-。-如果我调试,我所能看到的是,它正确设置了所选项,然后引发propertychanged事件,然后所选项被调用~三次。如果不再次单击,所选项目将再次保存,并调用~8次,现在我将获得相同数量的空引用错误。我没有跳过任何调试跳过,因此它认为调用来自gui。selectedItem根本不在c代码中使用->使用OneWayToSource会导致相同的错误!奇怪的现在发生了别的事情。一旦我选择了该项,该选项卡就会被取消选中。如果我单击此选项卡,同样的异常也会发生。我在转换器中写了一些调试消息:[link]对不起,它是德语的,但是你应该看到它的去向