2016-08-05 55 views
0

Ich habe ein Textfeld A mit einem Interaktionstrigger. Der Datenkontext des Textfelds ist eine Eigenschaft im Ansichtsmodell. Der ClearCommand ist jedoch in der Ansicht Modell definiert. Wie kann ich den Datenkontext der Interaktionsauslöser oder seines Befehls in das Ansichtsmodell selbst ändern?So ändern Sie den Datenkontext des Interaktionstriggers

Danke

<TextBox Name="TextBoxA"Text="{Binding myObject.TextPrp,UpdateSourceTrigger=PropertyChanged}"> 
      <i:Interaction.Triggers> 
       <i:EventTrigger EventName="TextChanged"> 
        <i:InvokeCommandAction Command="{Binding ClearCommand}" 
              CommandParameter="{Binding ElementName=TextBoxB,Path=Text}"></i:InvokeCommandAction> 
       </i:EventTrigger> 
      </i:Interaction.Triggers> 
     </TextBox> 

Antwort

1

Sie auf die relative Quelle zu binden, wie dies

<TextBox Name="TextBoxA"Text="{Binding myObject.TextPrp,UpdateSourceTrigger=PropertyChanged}"> 
     <i:Interaction.Triggers> 
      <i:EventTrigger EventName="TextChanged"> 
       <i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type YourUserControl}, Path=DataContext. ClearCommand}" 
             CommandParameter="{Binding ElementName=TextBoxB,Path=Text}"></i:InvokeCommandAction> 
      </i:EventTrigger> 
     </i:Interaction.Triggers> 
    </TextBox>