考虑UserControl
的以下xaml定义:
<UserControl x:Class="Demo.MyControl" x:Name="self">
<Grid Binding="{Binding ElementName=self}">
<Grid.Style>
<Style TargetType="{x:Type Grid}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=MyBooleanProperty}" Value="True">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>
</UserControl>
在上面的网格绑定中,我使用的是ElementName=self
,它指向控件本身。这只是一个绑定的例子,其中DataTrigger
使用的绑定源的数据类型在设计时是已知的。另一个例子是在DataTemplate
中定义一个样式,该样式具有DataType
属性。
我想把本地定义的样式提取到ResourceDictionary
中,但是如果样式是如上定义的,例如Path
属性,那么数据类型在设计时不可用,xaml编辑器不能提供我所拥有的intellisense支持。
有没有办法在ResourceDictionary中定义的样式中指定数据类型?
1条答案
按热度按时间dddzy1tm1#
我唯一能想到的是使用
d:DataContext
属性,它可以提示正确的方向,不幸的是,我的VS在样式上不接受它。除此之外,我不认为有任何有意义的方法来解决这个问题,因为一个样式可以应用于
TargetType
的任何元素,而设计师不知道它将应用于哪些元素。