我試圖在列表框的ContentTemplateSelected運行時踢出一個DataTemplate。數據類型和值在運行時不知道。這是一個例子。當我把這個:WPF電話8在類型DataTemplate中找不到可附加屬性資源
var dataTemplate = (DataTemplate)XamlReader.Load(xaml.ToString());
上生成的XAML:
<DataTemplate xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:converters="clr-namespace:DSI.MyProject.Converters;assembly=DSI.MyProject"
>
<DataTemplate.Resources>
<converters:StringValueToBoolConverter x:Key="stringValueToBoolConverter" />
</DataTemplate.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="128" />
</Grid.ColumnDefinitions>
<Border BorderThickness="1" BorderBrush="Black" Grid.Column="0" Background="{StaticResource PhoneContrastBackgroundBrush}" >
<CheckBox IsChecked="{Binding [CheckEd], Mode=TwoWay}" Padding="2" HorizontalAlignment="Left" />
</Border>
</Grid>
</DataTemplate>
我得到的錯誤:
的附着性能資源類型DataTemplate中未發現
我錯過包含的東西?
即使此示例沒有使用它,轉換器將用於IsChecked綁定。
這似乎爲這個人工作: Dynamically added DataTemplate - StaticResource for Converter can't be found
我原來的問題:WPF using converter in datatemplate created from xaml text and XamlReader on phone 8
感謝您澄清,您建議的修復是我最初的問題 - 我的頂級是,當我將轉換器添加到它的資源時,我得到一個異常時加載xaml http://stackoverflow.com/questions/28350731/wpf-using-converter-in-datatemplate-created-from-xaml-text-and -xamlreader-on-pho/28353259#28353259 –
jchristof
2015-02-05 22:10:33
我有點擔心你選擇模板的方法。看起來你實際上試圖解析XAML,當選擇一個DataTemplate資源或UserControl資源的靜態實例並以編程方式分配它時,這可能是使用轉換器時感到困惑的根源。問題實際上可能是建築。 – lsuarez 2015-02-05 22:21:39
我也很擔心;)如果您有強類型對象,我可以看到如何根據數據模板的目標類型進行選擇。我所擁有的是一串「字符串」(不知道在設計時有多少列,其中一些需要評估爲布爾運算,直到運行時再次不知道)。我試圖動態創建一個網格元素這些值佔據列表框的每一行。 – jchristof 2015-02-05 22:37:01