2014-07-17 7 views
5

पर नियंत्रण के लिए इवेंट ट्रिगर कैसे बनाएं I प्रोग्रामरेटिक रूप से मेरे कंटेंट कंट्रोल के लिए इवेंट ट्रिगर बनाना चाहता हूं। मैं वही परिणाम प्राप्त करना चाहता हूं क्योंकि मैं इस xaml कोड का उपयोग करूंगा। भी शामिल है - कमान, CommandParameter, घटनानाम

यह मेरे XAML कोड में दिखता है:प्रोग्रामेटिक रूप से

<ContentControl> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="PreviewMouseLeftButtonDown"> 
      <i:InvokeCommandAction Command="{Binding ButtonClickCommand}" CommandParameter="btnAdd"/> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</ContentControl> 
+0

पढ़ें "क्या मैं करना चाहता हूँ एक घटना ट्रिगर बनाने के लिए है ContentControl प्रोग्रामेटिक रूप से कमांड करने के लिए। ", भूल जाओ कि आप अपनी समस्या जानते हैं, और कल्पना करें कि आपको यह समझना होगा कि आप क्या कहने की कोशिश कर रहे हैं। मैं आपको समझ नहीं पा रहा हूं – Dbl

+0

क्या यह अब और अधिक स्पष्ट है @ AndreasMüller? – Edgar

+0

निश्चित रूप से बेहतर, हाँ – Dbl

उत्तर

8

यहाँ के कोड में बराबर:

void SetTrigger(ContentControl contentControl) 
{ 
    // create the command action and bind the command to it 
    var invokeCommandAction = new InvokeCommandAction { CommandParameter = "btnAdd" }; 
    var binding = new Binding { Path = new PropertyPath("ButtonClickCommand") }; 
    BindingOperations.SetBinding(invokeCommandAction, InvokeCommandAction.CommandProperty, binding); 

    // create the event trigger and add the command action to it 
    var eventTrigger = new System.Windows.Interactivity.EventTrigger { EventName = "PreviewMouseLeftButtonDown" }; 
    eventTrigger.Actions.Add(invokeCommandAction); 

    // attach the trigger to the control 
    var triggers = Interaction.GetTriggers(contentControl); 
    triggers.Add(eventTrigger); 
} 
+1

बहुत बहुत धन्यवाद! आप जीवन बचतकर्ता हैं। :) – Edgar

संबंधित मुद्दे