powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF custom control
4 сообщений из 4, страница 1 из 1
WPF custom control
    #38145820
Haza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть класс с несколькими свойствами FieldOptions, который должен влиять на некоторые свойства родителя. Нужно для нескольких стандартных контролов типа TextEdit, ButtonEdit добавить этот класс в виде расширения функциональности. Не могу понять как FieldOptions будет знать родителя.
Пример:
public class FieldOptions : DependencyObject
{

private static readonly Brush mandatoryBackground = new SolidColorBrush(Colors.Yellow);
private static readonly Brush readonlyBackground = new SolidColorBrush(Colors.Silver);

public static readonly DependencyProperty MandatoryProperty;
public static readonly DependencyProperty ReadOnlyProperty;

static AptFieldOptions()
{
Type owner = typeof(FieldOptions);

MandatoryProperty = DependencyProperty.Register("Mandatory", typeof(bool), owner, new UIPropertyMetadata(true, new PropertyChangedCallback(mandatoryChangedCallback)));
ReadOnlyProperty = DependencyProperty.Register("ReadOnly", typeof(bool), owner, new UIPropertyMetadata(false));
}

public bool Mandatory
{
get { return (bool)GetValue(MandatoryProperty); }
set { SetValue(MandatoryProperty, value); }
}

public bool ReadOnly
{
get { return (bool)GetValue(ReadOnlyProperty); }
set { SetValue(ReadOnlyProperty, value); }
}

private static void mandatoryChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
// Как здесь для CustomTextEdit изменить свойство???
}

}


public class CustomTextEdit : TextEdit
{

public static readonly DependencyProperty FieldOptionsProperty;


static CustomTextEdit()
{
Type owner = typeof(CustomTextEdit);

AptFieldOptionsProperty = DependencyProperty.Register("FieldOptions",
typeof(FieldOptions), owner, new PropertyMetadata(null, new PropertyChangedCallback(FieldOptionsChangedCallback)));
}

private static void FieldOptionsChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
//
}

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public FieldOptions FieldOptions
{
get { return (FieldOptions)GetValue(FieldOptionsProperty); }
set { SetValue(CustomTextEdit.FieldOptionsProperty, value); }
}

}
...
Рейтинг: 0 / 0
WPF custom control
    #38146708
Haza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно я не правильный вопрос вообще задал и пытаюсь изобрести велосипед.
Попытаюсь объяснить заново.
Итак, мне нужно расширить функциональность нескольких контролов. Хочу написать класс со свойствами зависимости. Потом этот класс сделать как свойство зависимости в контроле. Итого получается:
Options
|_ Property1
|_ Property2
|_ Property3
|_ Property4

Control1
|_ Options
|_ Property1
|_ Property2
|_ Property3
|_ Property4

Нужно сделать так, что бы при изменении свойства 1 в классе Options что-то делалось с контролом Control1, где Options объявлен. Проблема в том, что не могу получить доступ к Control1 из Options.
...
Рейтинг: 0 / 0
WPF custom control
    #38147016
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см Attached Properties
...
Рейтинг: 0 / 0
WPF custom control
    #38147740
Haza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SeVa,

Смотрел, но тогда получается вся логика буде в самом контроле. А нужно, чтобы в классе Options. Смысл в том, что бы не переопределять логику в самом контроле, а все сосредоточить в Options.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF custom control
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]