каждый, в приложении WPF у меня есть словарь ресурсов, где определено множество DataTemplates для элементов управления и стилей.Например,
<DataTemplate x:Key="PriceColumnCellTemplate">
<Grid VerticalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock
Text="{Binding Path=PriceQuotation, Mode=OneWay}"
Grid.Column="1"
VerticalAlignment="Center"
Margin="2,0"
/>
</Grid>
</DataTemplate>
в коде класса для просмотра. Я должен получить этот шаблон данных.Теперь это реализуется следующим образом
private DataTemplate _priceColumnCellTemplate;
private DataTemplate PriceColumnCellTemplate
{
get
{
if (_priceColumnCellTemplate == null)
_priceColumnCellTemplate = (DataTemplate)_applicationResources["PriceColumnCellTemplate"];
return _priceColumnCellTemplate;
}
}
private DataTemplate _priceColumnCellEditingTemplate;
private DataTemplate PriceColumnCellEditingTemplate
{
get
{
if (_priceColumnCellEditingTemplate == null)
_priceColumnCellEditingTemplate = (DataTemplate)_applicationResources["PriceColumnCellEditingTemplate"];
return _priceColumnCellEditingTemplate;
}
}
private DataTemplate _alternativePriceColumnCellTemplate;
private DataTemplate AlternativePriceColumnCellTemplate
{
get
{
if (_alternativePriceColumnCellTemplate == null)
_alternativePriceColumnCellTemplate = (DataTemplate)_applicationResources["AlternativePriceColumnCellTemplate"];
return _alternativePriceColumnCellTemplate;
}
}
, для каждого DataTemplate создается личное поле и свойство для получения значения этого поля.Таким же образом реализуется для стилей.
Проблема в этом коде заключается в том, что когда мне нужно добавить новый DataTemplate, я должен добавить код, как описано выше, для получения ресурсов формы DataTemplate.
КакВыполните рефакторинг этого кода, чтобы избежать дублирования кода и сохранить ту же функциональность. Может существовать более гибкий способ получения ресурсов из файла xaml.
Пожалуйста, помогите мне с предложением или приведите пример, как решить эту проблему.проблема.Заранее спасибо!