我有一个视图,该视图的资源中有几个数据模板。(我不想把它放在全局的地方,因为它只需要这个特定的视图)
根据我在转换器中获得的值,我切换模板。
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();
}
}
这按预期工作,但是因为我实例化 new IdtDetailView()
,我遇到了一些变量设置不正确等问题。因此我的问题是......
如何传递或访问调用此转换器的视图,以便不必创建新的 IdtDetailView?