【发布时间】:2016-02-04 17:10:20
【问题描述】:
所以我尝试在我的 .net 4.5 项目中使用David Veeneman's Bindable WPF RichTextBox。在我的代码中添加控件和ValueConverter 后,我注意到只有public object Convert() 会被触发,而public object ConvertBack() 不会。
在阅读了该项目的 cmets 后,我更改了以下部分控件源代码。
private static void OnDocumentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var thisControl = (EcoRichTextBox)d;
if (thisControl.m_InternalUpdatePending > 0)
{
thisControl.m_InternalUpdatePending--;
return;
}
// Changed:
try
{
thisControl.TextBox.Document = (e.NewValue == null) ? new FlowDocument() : (FlowDocument)e.NewValue;
}
catch { }
thisControl.m_TextHasChanged = false;
}
还有这个事件处理程序:
private void OnTextChanged(object sender, TextChangedEventArgs e)
{
// Set the TextChanged flag
m_TextHasChanged = true;
// Changed:
Document = TextBox.Document;
}
现在ValueConverter 的两种方法都可以正常工作,但像private void OnNormalTextClick(object sender, RoutedEventArgs e) 这样的事件会在运行时导致FatalExecutionEngineError。
所以我想知道 WPF 3.5 到 4.5 是否有重大变化?
或者有人有解决这个问题的想法吗?
更新
XAML 中的绑定
<uc:FsRichTextBox Margin="5"
Document="{Binding Path=Ereignis.Bericht,
Converter={StaticResource flowDocumentConverter},
UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True}" />
【问题讨论】:
-
能否请您展示一下您是如何进行绑定的?
-
您是否安装了 .NET Framework 4.6(即使您的目标是 4.5)?您是在尝试发布还是调试?另外,我无法通过演示和您的更改按框进行复制,您有完整的复制代码吗?
-
@SimonMourier 在我目前的开发机器上安装了 .NET 4.5.1。目标仍为 4.5
标签: wpf mvvm .net-4.5 richtextbox valueconverter