2010-11-07 146 views
0

我是WPF中的新手。我需要使TwoWay和OneWayToSource綁定到字符串變量。我想使用Extended WPF Toolkit中的richtextbox,因爲我認爲這是簡單的方法。擴展WPF工具包 - richtextbox的綁定文本

所以我嘗試使用richtebox從這個庫中的XAML,代碼是在這裏:

<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仍然是空的,哪裏可以解決問題?

回答

1

您是否嘗試過輸入內容然後將焦點從RichTextBox移開?我懷疑你的財產將會被更新。如果您想在輸入時更新房產,則需要:

Text="{Binding _rpText, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}" 
+0

它不工作,我的RichTextBox的屬性文本綁定到變量字符串,沒有串財產,你的解決方案的工作只有當我綁定到字符串屬性實現INotifyPropertyChanged的類。 – Joe 2010-11-07 17:10:35

+2

如果沒有財產變更通知,您會如何預計它會起作用? – 2010-11-07 18:02:20

+0

Sory,我不知道。所以這個接口是一個條件。 – Joe 2010-11-07 18:10:11

0

肯特是正確的。您的屬性必須禁止INotifyPropertyChanged接口使數據綁定在WPF/Silverlight中正常工作。

documentation介紹如何將屬性綁定到RichTextBox的:

相關問題