Wpf 使用DataTemplateSelector一次显示一次UserControl

Wpf 使用DataTemplateSelector一次显示一次UserControl,wpf,c#-4.0,datatemplateselector,Wpf,C# 4.0,Datatemplateselector,我有两个特定的用户控件来显示一些内容,例如简单的图像、WebControl,但也有两个复杂的特定自定义控件在画布上绘制 现在我想使用DataTemplateSelector来处理不同的用户控件。我实际上是以此为参考 我更改了代码,以便表单在以下集合中动态加载UserControls(根据文件扩展名): ObservableCollection<string> _pathCollection = new ObservableCollection<string>(); ob

我有两个特定的用户控件来显示一些内容,例如简单的图像、WebControl,但也有两个复杂的特定自定义控件在画布上绘制

现在我想使用DataTemplateSelector来处理不同的用户控件。我实际上是以此为参考

我更改了代码,以便表单在以下集合中动态加载UserControls(根据文件扩展名):

ObservableCollection<string> _pathCollection = new ObservableCollection<string>();
observetecollection\u pathCollection=newobservetecollection();
与引用的唯一区别是,现在我希望通过在同一时间只显示一个控件来来回导航到下一个控件。我应该使用哪个控件而不是ListView

<Grid>
    <ListView ScrollViewer.CanContentScroll="False" 
              ItemsSource="{Binding ElementName=This, Path=PathCollection}" 
              ItemTemplateSelector="{StaticResource imgStringTemplateSelector}">
    </ListView>
 </Grid>


我需要如何将其绑定到模板(等于上面的ItemTemplateSelector)?WPF对我来说还是很新的,我正在学习。

使用ContentControl。将当前项绑定到Content属性,将DataTemplateSelector绑定到ContentTemplateSelector属性



CurrentItem应该是DataContext的DependencyProperty或INotifyPropertyChanged属性。当您更改CurrentItem时,ContentControl将在TemplateSelector的帮助下自动更新模板。

Thx,成功了。但修正幅度较小,因此可以正常工作(“此”是当前窗口的名称):