2010-07-09 2 views
0

Я пытаюсь создать пользовательский AccordionItem, который может принимать значение свойства тега «Ранг»:Настройка существующего элемента управления путем добавления свойств

<local:MyAccItem Header="" Content="" Rank="" /> 

Это на самом деле не работает, потому что мой контроль просто содержит сетку который содержит оригинальный элемент Аккордеона. Я попытался манипулировать шаблоном и создал файл ресурсов с измененным шаблоном. Но я хочу изменить размер объекта Ellipse внутри AccordionItem, который я шаблонизировал, чтобы он менялся в зависимости от ранга этого элемента. Я действительно застрял. Помогите оценить.

+0

, пожалуйста, отправьте код – Ozan

ответ

2

Вам необходимо создать свойство зависимости «Ранг» в коде вашего MyAccItem UserControl. Я предполагаю, что ваш рейтинг будет int? Если это так, вы можете поместить это в свой код позади, построить, тогда он должен работать в вашем XAML.

#region Rank (DependencyProperty) 

    /// <summary> 
    /// Rank 
    /// </summary> 
    public int Rank 
    { 
     get { return (int)GetValue(RankProperty); } 
     set { SetValue(RankProperty, value); } 
    } 
    public static readonly DependencyProperty RankProperty = 
     DependencyProperty.Register("Rank", typeof(int), typeof(MyAccItem), 
     new PropertyMetadata(0, new PropertyChangedCallback(OnRankChanged))); 

    private static void OnRankChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
    { 
     ((MyAccItem)d).OnRankChanged(e); 
    } 

    protected virtual void OnRankChanged(DependencyPropertyChangedEventArgs e) 
    { 

    } 

    #endregion Rank (DependencyProperty) 
+0

попробуйте его сейчас ... но для чего нужен виртуальный метод? – JeroenEijkhof

+0

... и для чего стоит '#region Rank'? – JeroenEijkhof

+0

Это сработало спасибо. Но мне не нужны все лишние вещи, которые я не понимал. Такие, как виртуальный метод и '#region ...'. – JeroenEijkhof

0
#region Rank 
#endregion Rank 

эти теги используются для инкапсуляции кода между ними, так что вы можете развернуть и свернуть код в них.

Это просто, чтобы все было организовано, не более!