【问题标题】:WPF Richtextbox Bindable in .net 4.5.net 4.5 中可绑定的 WPF Richtextbox
【发布时间】: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


【解决方案1】:

我在 VS2015 中使用目标框架 4.0 和 4.5 运行了你 linked here 的演示。当我取出双向数据绑定时,它不会更新。

添加到您的实时出价。两种方式数据绑定和一个名字:

Mode=TwoWay 
x:Name="EditBox" 

我认为与其在此处自行管理文本更改,不如将其删除:

// Changed:
Document = TextBox.Document;

使用事件处理程序更新数据。

然后在管理更新的事件处理程序中(我假设单击按钮?并允许它管理更新。

this.EditBox.UpdateDocumentBindings();

x:name 属性很有价值。

这些都可以在源代码中找到。

如果您可以更清楚地了解您的项目是如何安排的,我可以提供更多详细信息。但对于初学者来说,我会这样做。更贴近提供的示例。

【讨论】:

    猜你喜欢
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多