Я думаю, что StaticResource
необходимо разрешить во время загрузки, и, поскольку он не находится в контексте, он потерпит неудачу. DynamicResource
сработал бы, поскольку он может ждать, пока не будет запрошено предоставление значения, но DynamicResource
не может использоваться в качестве источника для Binding
.
Если ваша ситуация это позволяет, вы можете добавить ресурс к DataTemplate
вместо этого, как это
DataTemplate t = GetObject(@"
<DataTemplate>
<DataTemplate.Resources>
<sys:String x:Key=""a"">Hello</sys:String>
</DataTemplate.Resources>
<Label Content=""{Binding Source={StaticResource a}}""/>
</DataTemplate>") as DataTemplate;
list.ItemTemplate = t;
Вам также необходимо добавить словарь Xmlns
pc.XmlnsDictionary.Add("sys", "clr-namespace:System;assembly=mscorlib");