void UpdateDescription() { if (descriptionRichTextBox == null) { return; } BlockCollection blocks = descriptionRichTextBox.Document.Blocks; if (treeListView.FocusedRowHandle == GridControl.InvalidRowHandle) { return; } string newDescription = list.FieldDescriptions[treeListView.FocusedRowHandle].TemplateName + "Description"; if (newDescription == lastDescription) { return; } lastDescription = newDescription; ContentControl control = new ContentControl() { Template = Resources[newDescription] as ControlTemplate }; control.ApplyTemplate(); ParagraphContainer container = VisualTreeHelper.GetChild(control, 0) as ParagraphContainer; blocks.Clear(); blocks.Add(container.Paragraph); }
static void DescriptionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var rtb = d as RichTextBox; if (rtb == null || rtb.Document == null) { return; } rtb.Document.Blocks.Clear(); var property = e.NewValue as PropertyDescriptor; if (property == null) { return; } ContentControl control = new ContentControl() { Template = rtb.FindResource(DynamicallyAssignDataEditorsTemplateSelector.GetTemplateName(property) + "Description") as ControlTemplate }; control.ApplyTemplate(); ParagraphContainer container = VisualTreeHelper.GetChild(control, 0) as ParagraphContainer; rtb.Document.Blocks.Add(container.Paragraph); }