Я создаю приложение, в котором у меня есть 2 пользовательских элемента управления, возможно ли, что у нас есть 2 страницы управления пользователями xaml и 1 код за файлом xaml.cs?
как создать несколько пользовательских элементов управления, указывающих один код за файлом в silverlight 4
Ответы (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 файл в этих случаях.