36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
using System.Windows;
|
|
using System.Windows.Data;
|
|
using System.Windows.Documents;
|
|
|
|
namespace BeWo.Controls
|
|
{
|
|
public class BindableRun : Run
|
|
{
|
|
public static readonly DependencyProperty BoundTextProperty = DependencyProperty.Register("BoundText", typeof(string), typeof(BindableRun), new PropertyMetadata(new PropertyChangedCallback(onBoundTextChanged)));
|
|
|
|
public BindableRun()
|
|
{
|
|
Binding b = new Binding("DataContext");
|
|
b.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(FrameworkElement), 1);
|
|
this.SetBinding(DataContextProperty, b);
|
|
}
|
|
|
|
public string BoundText
|
|
{
|
|
get
|
|
{
|
|
return (string)this.GetValue(BoundTextProperty);
|
|
}
|
|
|
|
set
|
|
{
|
|
this.SetValue(BoundTextProperty, value);
|
|
}
|
|
}
|
|
|
|
private static void onBoundTextChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
|
|
{
|
|
((Run)d).Text = (string)e.NewValue;
|
|
}
|
|
}
|
|
} |