У меня есть представление с парой шаблонов данных в ресурсах этого представления. (я не хочу размещать его где-то глобально, так как он нужен только для этого конкретного представления)
На основании значения, которое я получаю в конвертере, я переключаю шаблон.
public class SplitTemplateSelector : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
int splitCount = (int)value;
var _view = new IdtDetailView();
DataTemplate template;
if (splitCount == 1)
{
//(DataTemplate)_view.Resources["SingleSplitTemplate"];
template = (DataTemplate)_view.Resources.Where(w => w.Key.Equals("SingleSplitTemplate")).FirstOrDefault().Value;
}
else
{
template = (DataTemplate)_view.Resources.Where(w => w.Key.Equals("MultiSplitTemplate")).FirstOrDefault().Value;
}
return template;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
Это работает как задумано, однако, поскольку я создаю новый экземпляр IdtDetailView()
, я сталкиваюсь с некоторыми проблемами, когда переменные не установлены должным образом и т. Д. Поэтому мой вопрос ...
Как передать или получить доступ к представлению, которое вызвало этот конвертер, чтобы мне не пришлось создавать новый IdtDetailView?