我有一个包含以下内容的资源字典:
<SolidColorBrush x:Key="RowAlt"
Color="Gray" />
<Style x:Key="MainTreeRowStyle"
TargetType="{x:Type dxg:RowControl}">
<Setter Property="Foreground"
Value="White" />
<Setter Property="ShowHorizontalLine"
Value="False" />
<Setter Property="ShowVerticalLines"
Value="False" />
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding AlternateRow}"
Value="False" />
</MultiDataTrigger.Conditions>
<Setter Property="Background"
Value="Black" />
</MultiDataTrigger>
<Trigger Property="dxg:GridViewBase.IsFocusedRow"
Value="True">
<Setter Property="Background"
Value="{StaticResource RowAlt}" />
</Trigger>
</Style.Triggers>
</Style>
以上是抛出异常
&#34;已添加具有相同密钥的项目。&#34;
如果我替换
<Setter Property="Background"
Value="{StaticResource RowAlt}" />
与
<Setter Property="Background"
Value="{DynamicResource RowAlt}" />
不会抛出任何异常。为什么是这样?
答案 0 :(得分:0)
StaticResource和DynamicResource之间的区别在于引用元素如何检索资源。 StaticResource仅由引用元素检索一次,并用于资源的整个生命周期。另一方面,每次使用引用的对象时都会获取DynamicResource。