У меня проблема с тем, что Blend не отображает элементы в простоте стиля DataTemplate.
Я настроил базовый проект, чтобы повторить проблему.Ниже Xaml + ResourceDictionary для тех, у кого глаза Eagle, чтобы увидеть, что я делаю неправильно (если что), и, если вы действительно заинтересованы, есть ссылка на проект Zipped ниже.
Это то, что отображается, когдаприложение запускается:
, и это то, что представляет Blend:
<Color x:Key="TextColor1">#FF3631C4</Color>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="NoWrap"/>
<Setter Property="TextTrimming" Value="None"/>
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Color="{DynamicResource TextColor1}"/>
</Setter.Value>
</Setter>
</Style>
<Canvas x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource SampleDataSource}}">
<TextBlock Text="Textblock" Canvas.Left="44.954" Canvas.Top="49.305" />
<TextBlock Text="Textblock 2" Canvas.Left="44.954" Canvas.Top="86.284" />
<ListBox ItemsSource="{Binding Collection}" Canvas.Left="134.016" Canvas.Top="29.026" Height="154.275" Width="384.575">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Property1}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Canvas>
Полный пример проекта (65 КБ) - WpfApplication2.zip
Проблема, конечно, может бытьрешается путем точной установки стиля, но в моем основном проекте это вызовет небольшую головную боль.
Я видел некоторые комментарии к другим постам о том, что Blend может иметь проблемы, но ничего конкретного.
Есть какие-нибудь мысли / предложения?
Спасибо!
Редактировать:
Я обнаружил, что если я даю своему стилю Явный ключ, я могу затем создать неявный стиль на основеОткровенный, например, так:
<Style x:Key="TextBlockStyle1" TargetType="{x:Type TextBlock}">
<Setter Property="TextWrapping" Value="NoWrap"/>
<Setter Property="TextTrimming" Value="None"/>
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush Color="{DynamicResource TextColor1}"/>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource TextBlockStyle1}" />
Это дает мне возможность добавить еще один неявный стиль.в качестве ресурса в моем DataTemplate:
<DataTemplate>
<DataTemplate.Resources>
<Style TargetType="{x:Type TextBlock}" BasedOn="{StaticResource TextBlockStyle1}"></Style>
</DataTemplate.Resources>
<TextBlock Text="{Binding Property1}" />
</DataTemplate>
Это даст мне возможность смешивания, которая мне понадобится в моем основном проекте, но все еще не вполне отвечает на мой первоначальный вопрос.