У меня есть набор элементов управления пользователя, и я пытаюсь проверить, могу ли я создать для них базовый класс с некоторыми свойствами зависимостей.Наследуемые свойства зависимостей
В частности, большинство моих пользовательских элементов управления имеет следующий формат ...
<UserControl DataContext="{Binding MyDataContext}" >
<Expander IsExpanded="{Binding MyExpandedByDefault}">
<TextBlock>Some text</TextBlock>
</Expander>
</UserControl>
Конечно, как правило, если это был просто один-офф, я бы написать свойство зависимостей в коде для над пользовательским контролем. Однако, так как у меня есть несколько пользовательских элементов управления, которые следуют в том же формате, я хотел бы поставить что-то вроде следующего в базовом классе ...
public bool ExpandedByDefault
{
get { return (bool)GetValue(ExpandedByDefaultProperty); }
set { SetValue(ExpandedByDefaultProperty, value); }
}
public static readonly DependencyProperty ExpandedByDefaultProperty =
DependencyProperty.Register("ExpandedByDefault", typeof(bool), typeof(MyBaseView), new UIPropertyMetadata());
Я хотел бы, чтобы это наследоваться где-то так в моем Главное окно я могу сделать что-то вроде ....
<Window>
<StackPanel>
<my:Alpha ExpandedByDefault="True" />
<my:Bravo ExpandedByDefault="False" />
</StackPanel>
</Window>
Благодаря
EDIT:
Я сделал базовый класс, как так ...
public class ViewBase : UserControl
{
public static readonly DependencyProperty ExpandedByDefaultProperty =
DependencyProperty.Register("ExpandedByDefault",
typeof(bool),
typeof(FiapaDbViewerBase),
new FrameworkPropertyMetadata());
public bool ExpandedByDefault
{
get
{
return (bool)this.GetValue(ExpandedByDefaultProperty);
}
set
{
this.SetValue(ExpandedByDefaultProperty, value);
}
}
}
Но когда я пытаюсь наследовать его в код для моего пользовательского элемента управления, как так ....
public partial class MyUserControl : ViewBase
{
public MyUserControl()
{
InitializeComponent();
}
}
Я получаю сообщение об ошибке говорящее
Partial declarations of 'MyUserControl' must not specify different base classes
И я не могу найти другую часть частичного класса в моем решении ??? Я попытался найти его во всем решении ...
Что вы хотите сказать? Похоже, у вас уже есть ответ. –