我试图将DataTriggerBehavior绑定到我的ViewModel上的属性,但它并没有触发。
我已经使用绑定到各种控件属性的DataTriggerBehaviors没有任何问题,但无法使VM绑定工作。
DataContext设置为VM。 我可以在调试中看到绑定值,但没有触发器。 我通过将DataTriggerBehavior更改为EventTriggerBehavior来测试InvokeCommandAction,以便正常工作。
<AppBarButton Icon="Library">
<i:Interaction.Behaviors>
<core:DataTriggerBehavior Binding="{Binding HelpPhase}" ComparisonCondition="Equal" Value="Add" >
<core:InvokeCommandAction Command="{Binding DataContext.StoreRateCommand, ElementName=LayoutRoot}"/>
</core:DataTriggerBehavior>
</i:Interaction.Behaviors>
</AppBarButton>
在VM中(继承实现IPCN的VMBase)
Private mHelpPhase As String
Public Property HelpPhase() As String
Get
Return Settings.HelpPhase
End Get
Set(value As String)
SetProperty(Settings.HelpPhase, value)
End Set
End Property
答案 0 :(得分:0)
EventTriggerBehavior
在其源上侦听特定事件,并在触发事件时执行操作。它与DataTriggerBehavior
不同。
当行为绑定的数据满足指定条件时,DataTriggerBehavior
执行操作。在您的问题中,当HelpPhase值的绑定数据更改为&#34; Add&#34;时,该行为会触发一个触发命令的操作。
您应该能够检查是否已将HelpPhase
绑定到DataTriggerBehavior并设置&#34; Add&#34;到HelpPhase
。如果TextBlock显示&#34;添加&#34;您可以将HelpPhase
Text
属性绑定到TextBlock
。
有一个官方的DataTriggerBehavior样本,请参考XamlBehaviors sample。