Добавление нового настраиваемого свойства к элементу WPFC#

Место общения программистов C#
Ответить
Anonymous
 Добавление нового настраиваемого свойства к элементу WPF

Сообщение Anonymous »

Подобно тому, как заголовок является свойством TreeViewItem, я пытаюсь добавить еще одно свойство, на которое я могу ссылаться в своем коде.
Я начал изучать DependencyProperty, но у меня есть ощущение, что это неправильное направление, а также создание простого расширения, чтобы попытаться установить свойство, которое я ищу.
Небольшой фрагмент, который я пытаюсь заставить работать, выглядит примерно так:

Код: Выделить всё

public bool AddNewTreeviewChild(ItemCollection selectedTreeView, TreeViewItem selectedItem)
{
if (selectedTreeView.Contains(selectedItem))
{
var newChild = new TreeViewItemExtension();
newChild.Header = NewItem.Text;
newChild.TreeViewType = DesignateChildType();
selectedItem.Items.Add(newChild);
}

foreach (TreeViewItem item in selectedTreeView)
{
if (AddNewTreeviewChild(item.Items, selectedItem))
{
return true;
}
}

return false;
}
Свойство зависимости, которое я пробовал:

Код: Выделить всё

public static readonly DependencyProperty TreeViewTypeProp =
DependencyProperty.Register(
"TreeViewType",
typeof(string),
typeof(TreeViewItem),
new PropertyMetadata("Root")
);

public string TreeViewType
{
get { return (string)GetValue(TreeViewTypeProp); }
set { SetValue(TreeViewTypeProp, value); }
}
Однако это по-прежнему делает TreeViewType недоступным или неработоспособным в приведенном выше примере, поэтому он не компилируется и не запускается.
Я также пытался сделать расширение с помощью просто:

Код: Выделить всё

   public class TreeViewItemExtension : TreeViewItem
{
public string TreeViewType { get; set; }

public TreeViewItemExtension ()
{

}
}
Но при просмотре вновь добавленных элементов TreeViewType отсутствует. Я пробовал приводить и переименовывать различные TreeViewItems в TreeViewItemExtension, но безуспешно. Что мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/790 ... pf-element
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»