私はWPFプロジェクトに取り組んでいます。そして、依存関係プロパティを作成しました。この依存関係プロパティは、RichTextBox.Selection.Text
プロパティをbindeableにすることを目的としています。
しかし、私ができないのはRichTextBox.Selection.Text
、同じ DP を使用してデータを取得および設定することです。
これは、バインディングを使用してデータを取得したい場合にのみ使用したコードです。RichTextBox.Selection.Text
public class MyRichTextBox: RichTextBox
{
public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
"Text",
typeof(string),
typeof(MyRichTextBox),
new PropertyMetadata(
TextPropertyCallback));
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
public MyRichTextBox()
{
this.TextChanged += new TextChangedEventHandler(MyRichTextBox_TextChanged);
}
void MyRichTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
Text = this.Selection.Text;
}
それは完全に機能しますが、このコードでは ViewModel クラスからデータを送信できません。
したがって、ViewModelからプロパティにデータを設定するだけの場合は、次のRichTextBox.Selection.Text
コードを使用しました。
public class MyRichTextBox: RichTextBox
{
public static readonly DependencyProperty TextProperty = DependencyProperty.Register(
"Text",
typeof(string),
typeof(MyRichTextBox),
new PropertyMetadata(
TextPropertyCallback));
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
private static void TextPropertyCallback(DependencyObject controlInstance, DependencyPropertyChangedEventArgs args)
{
MyRichTextBox instance = (MyRichTextBox)controlInstance;
instance.Selection.Text = (String)args.NewValue;
}
では、同じ依存関係プロパティを使用してデータを取得および設定できるようにするにはどうすればよいでしょうか?
誰かが私を助けてくれることを願っています。