listpicker가 "닫히거나"정상 상태로 돌아갈 때 메서드를 실행해야하는 listpicker 요소가 있습니다. 내 xaml은 다음과 같습니다.WP8 XAML DataTrigger CallMethodAction 뒤에 코드에서 메서드를 호출하는 데 사용
<i:Interaction.Triggers>
<exp:DataTrigger Binding="{Binding ListPickerMode, ElementName=ListPickerAssembly}" Value="Normal">
이제 코드 뒤에서 메소드를 호출해야합니다. 내가 검색 할 수있는 모든 것의 처음 3 페이지에 자주색 링크가 있습니다. 그것이 작동 할 수 있지만 그것을 사용하는 방법을 알아낼 수 없습니다처럼 보이는
<exp:CallMethodAction
태그 :
은 내가이 있음을 참조하십시오.
도움을 주시면 감사하겠습니다.
업데이트
제대로 작동합니다. 내 .cs에서 내 생성자에 추가 : 내 XAML에서
DataContext = this;
나는 추가 :
x:Name="Page"
그런 다음 내 데이터 트리거에 내가 추가 :
<exp:CallMethodAction TargetObject="{Binding DataContext, ElementName=Page}" MethodName="Fire" />
그것은 지금 메소드를 호출 .
답장을 보내 주셔서 감사합니다. 나는 아직도 행운이 없다. 나는 뒤에있는 코드를 호출하기 때문에 내가 보여준 첫 번째 코드를 사용했다. 나는 또한 다음과 같이 시도했다 :'{CallMethodAction TargetObject = "{Binding RelativeSource = {RelativeSource Mode = TemplatedParent}}"MethodName = "Fire"/>'My.cs 메쏘드는 단지 :'public void Fire() {MessageBox.Show "불"); }'나는 어떤 종류의 참조가 빠져 있는지 잘 모르겠습니다. – Prizz
@Prizz ah ... 문제는 페이지가 "TemplatedParent"(제어 템플릿 내에서만 적용됨)가 아니라는 것입니다. Silverlight에서는 "RelativeSource AncestorType = phone : Page"을 사용하면이 작업이 쉬울 것입니다.하지만 불행히도 바인딩은 WP에 없습니다. – McGarnagle
@Prizz 위의 두 번째 예제 인 "ElementName"바인딩을 사용하려고합니다.하지만 내가 언급했듯이 제대로 작동하는지 확신 할 수는 없지만 그렇게한다면 가장 쉬운 방법입니다. 그렇지 않은 경우 뷰 모델을 사용하는 것이 가장 쉽습니다. – McGarnagle