C# 在运行时将数据模板指定给列表框

C# 在运行时将数据模板指定给列表框,c#,wpf,xaml,C#,Wpf,Xaml,在我的xaml代码中,在窗口.Resources部分中,我使用x:key定义了一个数据模板 <Window.Resources> <DataTemplate x:key> ... </DataTemplate> </Window.Resources> ... 我有一个列表框,我必须在.xaml.cs代码中为其分配此数据模板。如何做到这一点?使用ItemTemplate在XAML中声明性地为列表中的每个项目分配一个数据

在我的xaml代码中,在
窗口.Resources
部分中,我使用
x:key
定义了一个数据模板

<Window.Resources>
    <DataTemplate x:key>
     ...
    </DataTemplate>
</Window.Resources>

...

我有一个列表框,我必须在.xaml.cs代码中为其分配此数据模板。如何做到这一点?

使用ItemTemplate在XAML中声明性地为列表中的每个项目分配一个数据模板

<ListBox ItemTemplate="{StaticResource YourResourceKey}">

假设您的数据模板名为YourResourceKey

<DataTemplate x:Key="YourResourceKey">

在窗口的代码隐藏中,您可以执行以下操作:

myListBox.ItemTemplate = (DataTemplate)Resources["resourceKey"];

除非你有理由使用代码隐藏,否则我会坚持使用XAML并使用@Charleh的方法。

啊,对不起,是的,我会远离代码隐藏方法-你有理由使用代码隐藏吗?