Я создал настольное приложение WPF, используя шаблон MVVM.В рамках этой работы я создал пространство имен со многими диалоговыми окнами, dialogViewModels и dialogViews.Диалоговые окна обычно отображают один из диалоговых представлений, в зависимости от назначенного dialogViewModel.
Теперь я хочу преобразовать виды и модели представления в этом пространстве имен в отдельную библиотеку, чтобы я мог повторно использовать диалоги в других приложениях.Однако у меня есть два вопроса:
- Как мне установить стили в моих пользовательских элементах управления, чтобы при использовании библиотеки в другом приложении использовались стили из этого приложения.
- Смогу ли я переопределить назначения таблицы данных, сделанные в элементах управления библиотеки, при повторном использовании библиотеки?
Какой-то код, иллюстрирующий мою точку зрения:
<Window x:Class="FeehandlerMain.Dialogs.OKDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="{Binding Path=DialogTitle}"
Height="200" Width="400" ResizeMode="NoResize" ShowInTaskbar="False" Topmost="True" WindowStartupLocation="CenterOwner" SizeToContent="Height">
<Window.Resources>
<DataTemplate DataType="{x:Type dialogs:MessageBoxDialogViewModel}">
<dialogs:MessageBoxDialogView />
</DataTemplate>
</Window.Resources>
<Border Style="{StaticResource StandardBorderStyle}" >
<Grid Margin="5">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<ContentControl Content="{Binding}"
Grid.Column="0" Grid.Row="0" />
<StackPanel Orientation="Horizontal"
Grid.Column="0" Grid.Row="1">
<Button Content="OK" IsDefault="True" IsCancel="True"
Style="{StaticResource StandardButtonStyle}"/>
</StackPanel>
</Grid>
</Border>
</Window>
Вопрос 1 касается использования StandardBorderStyle
и StandardButtonStyle
.Эти стили в настоящее время определены в моем файле App.xaml в <Application.Resources>
.Если я помещаю диалоговые окна в библиотеку и ссылаюсь на эту библиотеку из нового приложения, как я могу получить диалог для использования StandardBorderStyle
и StandardButtonStyle
из приложения new , чтобы каждое приложение моглоопределить свой собственный визуальный стиль?
Вопрос 2 касается DataTemplates
.Эти шаблоны используются для выбора соответствующего представления для диалога (вставленного в качестве элемента ContentControl
в примере выше) на основе типа ViewModel, назначенного в качестве DataContext диалога.Смогу ли я переопределить вышеуказанный DataTemplate при повторном использовании библиотеки, в сценарии, где я хочу использовать представление, отличное от MessageBoxDialogView
для MessageBoxDialogViewModel
?
О, и я знаю, что это два вопроса, но вывсе равно просто получит репутацию за один ответ, извините!; -)