我有一个视图有几个数据模板在资源视图的。 (我不想把它放在全球因为其唯一通过这期特别需要)基于值I转换得到我切换模板C# - 查看传递到转换器的参数
。
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?
另外请注意,我m使用Keys来查找数据模板,因为如果我只是使用名称,第二次我会调用此转换器SL会抱怨具有以下名称的数据模板已经存在。 – Luke