我的 MVVM 程序中有一个 RichTextBox。我想将 RichTextBox.Selection 属性绑定到我的模型。为了完成这个任务,我创建了一个包含 RichTextBox 的自定义 UserControl:
<UserControl x:Class="MyProject.Resources.Controls.CustomRichTextBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<RichTextBox x:Name="RichTextBox" SelectionChanged="RichTextBox_SelectionChanged"/>
</UserControl>
在我的 UserControl 类中:
// Selection property
public static readonly DependencyProperty TextSelectionProperty =
DependencyProperty.Register("TextSelection", typeof(TextSelection),
typeof(CustomRichTextBox));
[Browsable(true)]
[Category("TextSelection")]
[Description("TextSelection")]
[DefaultValue("null")]
public TextSelection TextSelection
{
get { return (TextSelection)GetValue(TextSelectionProperty); }
set { SetValue(TextSelectionProperty, value); }
}
用法是:
<ResourcesControls:CustomRichTextBox TextSelection="{Binding ModelTextSelection}"/>
我的模型上有这个属性:
private TextSelection _TextSelection;
public TextSelection TextSelection
{
get { return _TextSelection; }
set { _TextSelection = value; }
}
我想在我的模型中获取 RichTextBox.Selection 属性,但 TextSelection 始终为空。我知道我缺少 RichTextBox.Selection 属性和他的模型之间的绑定,但我不知道该怎么做。我想我错过了一些东西,但我找不到什么。