2010-11-07 29 views
0

Je suis débutant dans WPF. J'ai besoin de faire en sorte que TwoWay et OneWayToSource se lient à une variable de type chaîne. Je veux utiliser richtextbox de Extended WPF Toolkit, parce que je pense que c'est la manière facile.Boîte à outils WPF étendue - Texte de liaison de la zone de texte riche

J'essayez d'utiliser richtebox de cette bibliothèque en XAML, le code est ici:

<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> 

Dans le code derrière, j'ai ce code:

private string _rpText = string.Empty; 

    public ChatWindow(PokecCommands pokecCmd) 
    { 
     rtbRpText.DataContext = _rpText; 
    } 

problème est, si je l'ai écrit quelque chose dans richtextbox, variable _rpText est toujours vide, où peut-être un problème?

Répondre

1

Avez-vous essayé de taper quelque chose et de décaler le RichTextBox? Je soupçonne que votre propriété sera alors mise à jour. Si vous voulez mettre à jour la propriété au cours de la saisie, vous aurez besoin de:

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

il ne fonctionne pas, je lie le texte de la propriété de RichTextbox à variable chaîne, pas à la propriété de chaîne, votre travail de solution que si je lie à la propriété de chaîne de classe implémentant INotifyPropertyChanged. – Joe

+2

Comment vous attendez-vous à ce qu'il fonctionne s'il n'y a aucune notification de changement de propriété? –

+0

Sory, je ne sais pas. Donc cette interface est une condition. – Joe

0

Kent est correct. Vos propriétés DOIVENT appliquer l'interface INotifyPropertyChanged pour que la liaison de données fonctionne correctement dans WPF/Silverlight.

Le documentation explique comment lier votre propriété au RichTextBox: