Как создать многопользовательский элемент управления, указывающий один код за файлом в 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.

Другие вопросы по тегам