我明顯錯過了一些非常基本的東西。我發現了類似的問題,但沒有一個答案能夠理解我做錯了什麼。WPF在控件上設置DataTemplate和ControlTemplate不起作用
當我設置ControlTemplate時,我的DataTemplate沒有被拾取。
我創建了我的問題很簡單的例子:
<Window x:Class="WpfTesterProject.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfTesterProject"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<DataTemplate DataType="{x:Type local:Person}">
<StackPanel>
<TextBlock Text="{Binding FirstName}" />
<TextBlock Text="{Binding LastName}" />
</StackPanel>
</DataTemplate>
</Window.Resources>
<ContentControl Content="{Binding Content}">
<ContentControl.Template>
<ControlTemplate>
<Border BorderBrush="Blue" BorderThickness="2">
<ContentPresenter />
</Border>
</ControlTemplate>
</ContentControl.Template>
</ContentControl>
</Window>
我想要做的就是在運行時加載選擇用戶自定義數據模板,但我也希望,例如,包裝的每一個無論用戶模板是什麼,或者即使他根本沒有指定任何模板,也是如此。
從我從類似問題中讀到的內容,我必須在ControlTemplate中使用<ContentPresenter />
,但結果與刪除它相同 - 只顯示邊框。
您可以顯示代碼隱藏?什麼是窗口的數據上下文? – Bas
沒有代碼。 DataContext是'new {Content = any_object_possible}' – Markos