Как создать многопользовательский элемент управления, указывающий один код за файлом в Silverlight 4
Я создаю приложение, в котором у меня есть 2 пользовательских элемента управления. Возможно ли, что у нас есть 2 пользовательских страницы управления xaml и 1 код за файлом xaml.cs?
1 ответ
Начните с создания трех файлов. Сначала файл "code-behind" .cs создается как простой класс:
public class MyCommonUserControl : UserControl
{
}
Обратите внимание, что это не имеет InitializeComponent
вызов.
Теперь создайте новый UserControl
затем измените его xaml так:
<local:MyCommonUserControl x:Class="YourApp.FirstMyCommonUserControl "
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:YourApp"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
</Grid>
</local:MyCommonUserControl >
Обратите внимание на дополнение xmlns:local
псевдоним, чтобы указать на пространство имен вашего приложения, то изменение UserControl
тег на базовый элемент управления, который мы на самом деле хотим.
Вы бы изменили.xaml.cs к этому:-
public partial class FirstMyCommonUserControl : MyCommonUserControl
{
public FirstMyCommonUserControl()
{
InitializeComponent();
}
}
Это все, что нужно.xaml.cs содержать.
Затем вы можете повторить это для SecondMyCommonUserControl
и так далее. Поместите весь общий код в базу MyCommonUserControl
учебный класс.
Жаль, что MS не предвидела этого, добавив пустой виртуальный метод InitializeComponent к базовому UserControl
и иметь автоматически сгенерированный код.gics override
метод означал бы, что в этих случаях мы могли бы обойтись без этого лишнего файла.xaml.cs.