using System.Collections.Generic; using System.Windows; using System.Windows.Documents; namespace Juick.Classes { public static class ParagraphBindingBehavior { public static readonly DependencyProperty AssignedInlinesProperty = DependencyProperty.RegisterAttached("AssignedInlines", typeof(IEnumerable), typeof(Paragraph), new PropertyMetadata(null, AssignedInlinesCallback)); static void AssignedInlinesCallback(DependencyObject target, DependencyPropertyChangedEventArgs e) { var inlines = ((Paragraph)target).Inlines; inlines.Clear(); var value = e.NewValue as IEnumerable; if (value != null) { foreach (var inline in value) { inlines.Add(inline); } } } public static IEnumerable GetAssignedInlines(DependencyObject obj) { return (IEnumerable)obj.GetValue(AssignedInlinesProperty); } public static void SetAssignedInlines(DependencyObject obj, IEnumerable value) { obj.SetValue(AssignedInlinesProperty, value); } } }