我是WPF的新手。我需要让TwoWay和OneWayToSource绑定到字符串变量。我想使用Extended WPF Toolkit中的richtextbox,因为我认为这是一种简单的方法。
所以我尝试在xaml中使用此库中的richtebox,代码在这里:
<Window x:Class="PokecMessanger.ChatWindow"
xmlns:extToolkit="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit.Extended"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ChatWindow" Height="429" Width="924">
///...
<extToolkit:RichTextBox Name="rtbRpText" Text="{Binding _rpText, Mode=OneWayToSource}" Grid.Column="0"></extToolkit:RichTextBox>
在代码背后,我有这段代码:
private string _rpText = string.Empty;
public ChatWindow(PokecCommands pokecCmd)
{
rtbRpText.DataContext = _rpText;
}
问题是,如果我在richtextbox中写了一些东西,变量_rpText仍然是空的,哪里可能有问题?
答案 0 :(得分:1)
您是否尝试过键入内容然后将焦点从RichTextBox
移开?我怀疑你的财产会更新。如果要在键入时更新属性,则需要:
Text="{Binding _rpText, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}"
答案 1 :(得分:0)
肯特是对的。您的属性必须强制INotifyPropertyChanged接口使数据绑定在WPF / Silverlight中正常工作。
documentation解释了如何将属性绑定到RichTextBox: