我使用绑定到某些难以触及的附加属性的IsOpen
打开Popup。我想要的只是以某种方式将IsOpen
值传递给ViewModel。
尝试使用setter:
<Popup StaysOpen="False"
IsOpen="{Binding Path=(local:ListViewBehavior.IsColumnHeaderClicked), RelativeSource={RelativeSource FindAncestor, AncestorType=GridViewColumnHeader}}">
<Popup.Style>
<Style TargetType="Popup">
<Style.Triggers>
<Trigger Property="IsOpen" Value="True">
<!-- this is not possible -->
<Setter Property="{Binding IsPopupOpened ...}" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
</Popup.Style>
</Popup>
给出:
不能在'Setter'类型的'Property'属性上设置'Binding'。 '绑定'只能在DependencyObject的DependencyProperty上设置。
有没有办法将IsOpen
值(已经绑定到View中的其他内容)传递给ViewModel?
答案 0 :(得分:1)
您可以创建一个附加属性,该属性由eventhandler设置为Popup的Opened和Closed事件。这可以通过OneWayToSource绑定绑定到ViewModel的IsPopupOpen属性。 我也不太确定是否有更简单的解决方案,但这是一种&#34;解决方法&#34;我会做什么,如果没有人在这里提供更好的解决方案。