الحصول على غير الكائنات واجهة المستخدم للرد على WPF الأمر الارتباطات

StackOverflow https://stackoverflow.com/questions/606115

  •  03-07-2019
  •  | 
  •  

سؤال

لدي ViewModel الدرجة التي أريد أن تستجيب بنيت في تحديث الأوامر التي تطلق من زر ولكن انا غير متأكد من كيفية تعلن CommandTarget.

باختصار قانون بلدي أدناه

ViewModel منشئ CanExecute وأعدم معالجات الأحداث -

    public ViewModel()
    {
        CommandBinding binding = new CommandBinding(NavigationCommands.Refresh, CommandHandler);
        binding.CanExecute += new CanExecuteRoutedEventHandler(binding_CanExecute);
        binding.Executed += new ExecutedRoutedEventHandler(binding_Executed);
        CommandManager.RegisterClassCommandBinding(typeof(ViewModel), binding);
    }
    void binding_Executed(object sender, ExecutedRoutedEventArgs e)
    {
        Debug.Print("Refreshing...");
    }

    void binding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
    {
        e.CanExecute = true;
    }

العلامات هو -

<Button Command="Refresh">refresh</Button>

لقد حاولت وضع CommandTarget على هذا الزر {Binding Source={StaticResource ViewModel}} ولكن يمكنني الحصول على وقت تقول Cannot convert the value in attribute 'CommandTarget' to object of type 'System.Windows.IInputElement'.

أنا جديدة على الأوامر لذلك فمن الممكن تماما أنا جميع أنواع الخطأ هنا.Anyhelp سيكون موضع تقدير.

هل كانت مفيدة؟

المحلول

RoutedCommands MVVM لا يختلطان. RoutedCommands ترتبط البصرية شجرة والاعتماد على ب WPF CommandBindings جمع.يجب أن تنفذ الخاصة بك ICommand الفئات التي تعمل مع نمط MVVM.نلقي نظرة على المنشور هو تطبيقات بالنسبة للمبتدئين.

في بلدي MVVM المشاريع لدي بعض الأوامر تطبيقات:

  • DelegateCommand.المكالمات المقدمة المندوبين لتحديد ما إذا كان يمكن تنفيذ الأوامر و تنفيذ الأوامر.
  • ActiveAwareCommand.يعمل جنبا إلى جنب مع واجهة (IActiveAware) ويرسل الأوامر بإجراءات النشطة حاليا البند.متعددة نشطة علم تطبيقات تسجيل أنفسهم مع القيادة ، القيادة تلقائيا الطرق CanExecute / Execute المكالمات النشطة حاليا البند.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top