0
bindable richTextbox가 필요하기 때문에 richTextBox로 사용자 컨트롤을 시도합니다.richTextBox, bindable richTextBox가있는 사용자 정의 컨트롤
여기에 해결책을 찾았습니다 : Richtextbox wpf binding.
Arcturus의 솔루션을 사용하고 싶습니다. richTextBox 컨트롤을 사용하여 사용자 정의 컨트롤을 만들고 종속성 속성을 사용합니다. 코드 숨김에서
<UserControl x:Class="WpfApplication2.BindableRichTextBoxControl"
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">
<Grid>
<RichTextBox Name="RichTextBox" Grid.Row="0"/>
</Grid>
</UserControl>
:
public partial class BindableRichTextBoxControl : UserControl
{
public static readonly DependencyProperty DocumentProperty =
DependencyProperty.Register("Document", typeof(FlowDocument), typeof(BindableRichTextBoxControl),
new PropertyMetadata(OnDocumentChanged));
public FlowDocument Document
{
get { return (FlowDocument)GetValue(DocumentProperty); }
set { SetValue(DocumentProperty, value); }
}
private static void OnDocumentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var control = (BindableRichTextBoxControl)d;
if (e.NewValue == null)
control.RichTextBox.Document=new FlowDocument();
//?
control.RichTextBox.Document = document;
}
public BindableRichTextBoxControl()
{
InitializeComponent();
}
}
나는 작은 OnDocumentChanged 방법의 마지막 줄과 혼동하고
는 XAML에서 난 단지 제어를 RichTextBox있다. 내가 식별 할 수 control.RichTextBox.Document = document;
는 varibale 문서 것입니다.
private static void OnDocumentChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
RichTextBoxControl control = (RichTextBoxControl) d;
if (e.NewValue == null)
control.RTB.Document = new FlowDocument(); //Document is not amused by null :)
else
control.RTB.Document = e.NewValue;
}
하지만 난 당신이 자신의 원래의 대답에 코멘트를 남겨 추천 :