1
我想在任何綁定參數的改變卡利微動作綁定
綁定使用長語法卡利微設置爲來電CanExpressionSave方法。
<controls:ImageButton DockPanel.Dock="Right" Image="/Resources/Save.png" AlternativeImage="/Resources/SaveDisabled.png"
Text="Save" Style="{StaticResource ControlButtonStyle}" x:Name="ExpressionSave">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="ExpressionSave">
<cal:Parameter Value="{Binding ElementName=firsttag, Path=Text}"></cal:Parameter>
<cal:Parameter Value="{Binding ElementName=firstoperation, Path=Content}"></cal:Parameter>
<cal:Parameter Value="{Binding ElementName=secondtag, Path=Text}"></cal:Parameter>
<cal:Parameter Value="{Binding ElementName=SecondOperation, Path=Content}"></cal:Parameter>
<cal:Parameter Value="{Binding ElementName=thirdtag, Path=Text}"></cal:Parameter>
</cal:ActionMessage>
</i:EventTrigger>
</i:Interaction.Triggers>
</controls:ImageButton>
代碼隱藏:
public void ExpressionSave(string firsttag, string firstoperation, string secondtag,
string secondoperation, string thirdtag){ }
public bool CanExpressionSave(string firsttag, string firstoperation, string secondtag,
string secondoperation, string thirdtag){}
你是否在這些屬性更改時爲屬性更改了通知?通過在VM中實現'INotifyPropertyChange'或從'Caliburn.Micro.PropertyChangedBase'繼承並調用'NotifyOfPropertyChange((()=> SomeProperty);' – Charleh 2013-03-15 11:12:53
感謝您的快速響應。我發現錯誤,但不能在8小時前回答我的問題:) – 2013-03-15 11:27:22
問題出現在綁定中的幾個框架中。 我以爲我從參數中獲取正確的數據,因爲我預計沒有值,但我得到的值因爲錯誤的綁定。 xaml和上面的代碼是有效的,因爲CanExpressionSave將被Caliburn隱式綁定。這意味着對任何綁定屬性的任何更改都會觸發CanExpressionSave。 希望這可以幫助某人:) – 2013-03-15 11:30:41