我想绑定到一个元素的属性(在我的特定情况下是一个ListBox的SelectedItems.Count
),它是从位于DataTemplate
的{{1}}动态插入到我的窗口中的。我想在计数达到一定数量的ResourceDictionary
时启用/禁用按钮。我认为这样可行:
ListBoxItems
但我收到以下错误:
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding Source={StaticResource myResourceKey}, Path=myListBox.SelectedItems.Count}" Value="25">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
如何实现此绑定?提前谢谢。
答案 0 :(得分:1)
那么你可以写一个解决方法,但我强烈建议不要那样实现它。请注意,ResourceDictionary
中的样式是一个空资源,应该与应用程序中的任何特定实例(在您的情况下为myListBox
)分离。问题是,您无法在另一个Button
上使用此格式错误的样式。所以你不需要,更好的是你不应该将它声明为资源。
我绝对建议您直接在Style
中声明此Button
。 E.g。
<ListBox x:Name="myListBox" />
<Button>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=myListBox,
Path=SelectedItems.Count}" Value="25">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
此外,我会通过Binding
属性使用ElementName
。