C# WPF valueconverter随机抛出;方法或操作未实现”的;重建后
我的wpf应用程序中有一个值转换器,它会导致生成的随机崩溃。有时应用程序正在工作,完全更改其他内容并重建项目可能会使整个应用程序停止工作,从而导致 未实现该方法或操作 如果我移除值转换器,应用程序每次都能正常工作。为了让它发挥作用,我有时必须多次清理和重建解决方案(或者从XAML中删除转换器并构建,然后再添加它并再次构建,有时也可以) 最让我烦恼的是,它有时能工作,但毫无理由,它只是在重建后停止工作 这是我的XAMLC# WPF valueconverter随机抛出;方法或操作未实现”的;重建后,c#,wpf,C#,Wpf,我的wpf应用程序中有一个值转换器,它会导致生成的随机崩溃。有时应用程序正在工作,完全更改其他内容并重建项目可能会使整个应用程序停止工作,从而导致 未实现该方法或操作 如果我移除值转换器,应用程序每次都能正常工作。为了让它发挥作用,我有时必须多次清理和重建解决方案(或者从XAML中删除转换器并构建,然后再添加它并再次构建,有时也可以) 最让我烦恼的是,它有时能工作,但毫无理由,它只是在重建后停止工作 这是我的XAML <Window x:Class="Common.Cleanup.View
<Window x:Class="Common.Cleanup.Views.CleanupView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:converters="clr-namespace:Common.Cleanup.Converters"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:cal="http://www.caliburnproject.org"
mc:Ignorable="d">
<Window.Resources>
<converters:IconTypeConverter x:Key="IconConverter" />
</Window.Resources>
...
<TreeView x:Name="CleanItems" Grid.Row="1" Grid.Column="1" ItemsSource="{Binding CleanupItemList}" >
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="Focusable" Value="false" />
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Items}">
<StackPanel Orientation="Horizontal">
<Image Margin="0,0,3,0" MinWidth="16" MinHeight="16" Source="{Binding Path=IconType, Converter={StaticResource IconConverter}}" />
<CheckBox IsChecked="{Binding IsChecked}" />
<TextBlock Text="{Binding Name}" Margin="3,0,0,0" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
...
</Window>
我正在为x64平台构建一个调试配置的项目。在图像绑定中添加
Mode=OneWay
,事情应该会变得更好
像这样:
<Image Margin="0,0,3,0" MinWidth="16" MinHeight="16"
Source="{Binding Path=IconType, Converter={StaticResource IconConverter}, Mode=OneWay}" />
这是因为在转换器的ConvertBack
函数中,您要求它抛出异常。因此,每当它试图用UI元素的更改值更新source时,就会调用ConvertBack
函数并抛出您看到的异常
编辑
我刚才在
ConvertBack
函数中看到了您的评论。我还是建议你试试我的答案。还可以尝试返回NotSupportedException
,而不是返回NotImplementedException
或null,查看错误消息是否更改。为什么?OP似乎认为ConvertBack方法不是这里的原因。@Corentpane:他没有说过这样的话。另外,方法或操作未实现
消息清楚地表明正在抛出NotImplementedException
,这通常不是框架组件抛出的。他写道//这不是问题所在。在ConvertBack
方法中,我试图返回null,但没有任何差异。@corentpane:我错过了那个注释。我仍然相信他应该试试这个答案。我完全有理由相信正是这行代码导致了指定的异常。谢谢。但你的两个建议似乎都没有改变这个问题=(它仍然随机抛出相同的错误(方法或操作未实现
),现在没有任何其他未实现异常的痕迹!
<Image Margin="0,0,3,0" MinWidth="16" MinHeight="16"
Source="{Binding Path=IconType, Converter={StaticResource IconConverter}, Mode=OneWay}" />