目前我正在使用DataTemplateSelector在我的UserControl.Resources中查找DataTemplates,但我想将它们移动到ResourceDictionary中 . 如何从DataTemplateSelector查看ResourceDictionary?
这是我当前的DataTemplateSelector:
public class SettingsDataTemplateSelector : DataTemplateSelector
{
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
FrameworkElement element = container as FrameworkElement;
if (element != null && item != null && item is Setting)
{
Setting registeritem = item as Setting;
if (registeritem.EditValueVar.EditType == EditType.Textfield)
return element.FindResource("TextboxDataTemplate") as DataTemplate;
else if (registeritem.EditValueVar.EditType == EditType.DropDown)
return element.FindResource("ComboDataTemplate") as DataTemplate;
else if (registeritem.EditValueVar.EditType == EditType.Slider)
return element.FindResource("SliderDataTemplate") as DataTemplate;
else
throw new ArgumentOutOfRangeException(registeritem.EditValueVar.EditType.ToString());
}
return null;
}
}
2 回答
在
ResourceDictionary
中分隔DataTemplate
然后将其添加到App.xaml
:在
DataTemplateSelector
中,您可以通过以下方式获取模板:其中
myCustomDataTemplate
是您在MyDataTemplate.xaml
文件中指定的datatemplate的键 .您可以在
DataTemplateSelector
类中添加ResourceDictionary
属性:...你在XAML中设置的: