- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,代码:
<UserControl x:Class="Engage.IWS.Modules.InteractionResults.Views.InteractionResultView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras"
... more here that should be irrelevant ...
<TreeView
x:Name="lstResults"
Grid.Row="1"
ItemsSource="{Binding Children}"
>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate
ItemsSource="{Binding Children}"
DataType="{x:Type Models:InteractionResult}"
>
<StackPanel Orientation="Horizontal">
<TextBlock
Text="{Binding Name}"
/>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectedItemChanged">
<cmd:EventToCommand Command="{Binding ResultSelected, Mode=OneWay}"
CommandParameter="{Binding ElementName=lstResults, Path=SelectedValue}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</TreeView>
我正在使用 MvvmLight,并且我想使用 TreeView 中当前选定的项目来调用 ViewModel 上的命令。在我尝试添加 EventToCommand 行为之前,这一切都工作正常。
删除 <i:Interaction.Triggers>
block 内的所有内容(包括 ojit_code block )可以防止 NullReferenceException 发生,但在选择项目时我没有任何行为。
需要明确的是,该错误本身表现为 XamlParseException,其中包含 TargetInitationException,其中包含 NullReferenceException。这是我第一次尝试使用 EventToCommand。
导致此异常的可能原因是什么?如何解决?
NullReferenceException 堆栈跟踪是:
at System.Windows.Markup.ReflectionHelper.IsPublicType(Type type)
at System.Windows.Markup.XamlTypeMapper.UpdateAttachedPropertyMethdodInfo(BamlAttributeInfoRecord attributeInfo, Boolean isSetter)
at System.Windows.Markup.XamlTypeMapper.UpdateAttachedPropertyGetter(BamlAttributeInfoRecord attributeInfo)
at System.Windows.Markup.PropertyDefinition.get_AttachedPropertyGetter()
at System.Windows.Markup.BamlCollectionHolder.InitDefaultValue()
at System.Windows.Markup.BamlCollectionHolder..ctor(BamlRecordReader reader, Object parent, Int16 attributeId, Boolean needDefault)
at System.Windows.Markup.BamlRecordReader.ReadPropertyIListStartRecord(BamlPropertyIListStartRecord bamlPropertyIListStartRecord)
at System.Windows.Markup.BamlRecordReader.ReadRecord(BamlRecord bamlRecord)
at System.Windows.Markup.BamlRecordReader.Read(Boolean singleRecord)
at System.Windows.Markup.TreeBuilderBamlTranslator.ParseFragment()
at System.Windows.Markup.TreeBuilder.Parse()
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at Engage.IWS.Modules.InteractionResults.Views.InteractionResultView.InitializeComponent() in c:\Users\admin\Documents\Visual Studio 2010\Projects\engage-iws-modules\Engage.IWS.Modules.InteractionResult\Views\InteractionResultView.xaml:line 1
at Engage.IWS.Modules.InteractionResults.Views.InteractionResultView..ctor(IInteractionResultViewModel viewModel) in C:\Users\admin\Documents\Visual Studio 2010\Projects\engage-iws-modules\Engage.IWS.Modules.InteractionResult\Views\InteractionResultView.xaml.cs:line 14
at Engage.IWS.Test.InteractionResults.FakeViewModel..ctor() in C:\Users\admin\Documents\Visual Studio 2010\Projects\engage-iws-modules\Engage.IWS.Modules.InteractionResult.Test.View\FakeViewModel.cs:line 17
at Engage.IWS.Test.InteractionResults.MainWindow..ctor() in C:\Users\admin\Documents\Visual Studio 2010\Projects\engage-iws-modules\Engage.IWS.Modules.InteractionResult.Test.View\MainWindow.xaml.cs:line 13
最佳答案
...我是个白痴。在我正确地阅读了我在此处发布的堆栈跟踪后,我意识到问题可能出在 xmlns 声明中。果然,我没有重新添加程序集作为对项目的引用。
我很想删除这个问题,但我上次使用 WPF 时(一年多前)已经做过类似的事情,希望我的愚蠢能帮助其他人解决他们的问题。
顺便说一句,在这种情况下生成的异常非常糟糕。引发“无法加载命名空间‘i’,您是否缺少引用?”的异常真的那么困难吗?我什至使用 <i:...>
进行智能感知命名空间。
关于wpf - TreeView 上的 MvvmLight EventToCommand 抛出 NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5730094/
我们在 WPF 中使用 MVVMLight。我们的 View 和 View 模型驻留在不同的项目中。 Views 中发生的所有未处理的异常都可以由 app.xaml.cs 文件处理,但我们也希望通过提
我在Silverlight 5中使用MVVMLight。 有谁知道为什么它不能发送空消息? 我正在使用Send(TMessage消息) Messenger.Default.Send(null); 通常
我的项目中有一个奇怪的行为。我使用 MvvmLight messenger 来通知我的 UI 的不同部分进行更新。 public EntryViewModel(MenuViewModel men
MvvmLight的ViewModelBase类型具有由所有子类继承的IsInDesignMode属性。 我的MainWindow ViewModel类似于: class MainWindowView
我正在使用MvvmLight,并已使用MessengerInstance.Send(...)方法在某些ViewModel之间实现了通信。效果很好! 不过,最近,我已经从使用同步方法转移到了异步方法来检
各位,我正在使用 WPF 开发 MVVMLight 应用程序,但我的问题是我想在用户加载页面后触发 Loaded 事件。例如我有一些导航页面,所以每当用户点击任何页面时,都应该触发 PageLoade
根据 MSDN doc on PropertyChanged ,如果将空字符串传递给该方法,则会刷新所有属性。使用MvvmLight RaisePropertyChanged 时有这样的事情吗?传递
我有什么 使用 MVVMLight,我有一些在可移植项目中声明的服务接口(interface)以及在 Windows Phone 项目 (WP8.1 SL) 中的相应实现。为了注册实现,我在 App
我正在编写使用 MVVMLight 的 WPF 应用程序。我有一个 DataGrid,我想将选择行的事件连接到命令。这是最简单的部分。困难的部分(当然对我来说 ;])是获取与选定行相关联的实体。我该怎
你好 我通过连接到 MVVM 的 EventToCommand 获得了这个 xaml,此代码的问题是,在离开包含它的页面后,它始终保留在内存中。
我对现有的 MVVMlight 导航界面方法不太满意,而且这种方法非常少,我想实现我自己的导航界面,我可以在其中公开复杂的方法来操作导航堆栈并将其与 MVVM 灯集成。 非常感谢任何关于实现这一目标的
这个问题可能看起来很幼稚,但我无法理解 ViewModelLocator.cs 文件中的这段代码: static ViewModelLocator() { ServiceLocator.Set
是否可以编写一个调用 Messenger.Default.Register 方法的单元测试,然后编写一个供 Action 使用的 Assertion? 我想确定我的 ViewModel 在对我的一个命
"Could not load file or assembly 'GalaSoft.MvvmLight, Version=5.4.1.0, Culture=neutral, PublicKeyTok
xaml View 模型 public ProductVM() {
我在 Windows Phone 8 项目中使用 GalaSoft - MVVM Light Toolkit 时遇到了一个相当奇怪的问题。突然(在合并一些东西之后)我所有的 EventToComman
我在开发 Windows 应用商店应用程序时遇到了一个大问题。我前段时间描述了我的解决方案架构in this question .我将 MvvmLight 添加到我的包含表示逻辑的可移植类库中,然后我
这个测试不应该通过吗: [TestMethod] public void derived_message_subscription() { bool handled = false;
我正在使用 Xamarin iOS 和 Xamarin Android 设计一个跨平台应用程序架构,我决定使用 MvvmLight,它看起来不错,并且没有隐藏 MVVM 模式的所有内容,非常好而且灵活
我正在构建一个应用程序来自学 MVVM 并通过一些谷歌搜索(和一些尝试错误)我已经设法达到可以从 ViewModel 打开第二个窗口但不能从一个页面传递变量的地步给另一个。这是我的 View 模型。
我是一名优秀的程序员,十分优秀!