没有代码隐藏的 DataTemplateSelector

DataTemplateSelector without code-behind

是否可以仅以 XAML 的方式使用 DataTemplateSelector,即没有代码隐藏?

你不能定义 XAML 中的实际 DataTemplateSelector class 如果这就是你要问的。

使用 C# 或任何您喜欢的编程语言定义 DataTemplateSelector class 后,您可以在 XAML 标记中使用它:

<Window ... xmlns:local="clr-namespace:SDKSample">
    <Window.Resources>
        <local:TaskListDataTemplateSelector x:Key="myDataTemplateSelector"/>
    </Window.Resources>
    <Grid>
        <ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}"
         ItemTemplateSelector="{StaticResource myDataTemplateSelector}"
         HorizontalContentAlignment="Stretch"/>
        ...

有关详细信息和完整示例,请参阅 MSDN 上的文档:https://msdn.microsoft.com/en-us/library/system.windows.controls.datatemplateselector(v=vs.110).aspx