2013-06-05 23 views
17

WPF uygulamaları geliştiriyorum ve bunları referans olarak ekleyebilmem için tüm bu uygulamalarda aynı olan sınıflarımı yeniden kullanmak istiyorum. Benim durumumdaSınıf kitaplığı, CommandManager sınıfını tanımıyor

benim komutlar için bir sınıf var:

public class RelayCommand : ICommand 
{ 
    #region Fields 

    readonly Action<object> _execute; 
    readonly Predicate<object> _canExecute; 

    #endregion // Fields 

    #region Constructors 

    public RelayCommand(Action<object> execute) 
     : this(execute, null) 
    { 

    } 

    public RelayCommand(Action<object> execute, Predicate<object> canExecute) 
    { 
     if (execute == null) 
      throw new ArgumentNullException("execute"); 

     _execute = execute; 
     _canExecute = canExecute; 
    } 
    #endregion // Constructors 

    #region ICommand Members 

    public bool CanExecute(object parameter) 
    { 
     return _canExecute == null ? true : _canExecute(parameter); 
    } 

    public event EventHandler CanExecuteChanged 
    { 
     add { CommandManager.RequerySuggested += value; } 
     remove { CommandManager.RequerySuggested -= value; } 
    } 

    public void Execute(object parameter) 
    { 
     _execute(parameter); 
    } 

    #endregion // ICommand Members 
} 

Bu benim uygulamada mükemmel çalışır, ancak ben sadece benim projede referans olarak eklemek istediğiniz bir sınıf kütüphanesi yapmak istediğinizde Visual Studio "CommandManager geçerli bağlamda yok" nedeniyle yapılamıyor. Benim usings ben

using System; 
using System.Windows.Input; 

bir "sınıf kitaplığı proje" de bunu yapamaz neden Herhangi fikirleri (yeterli olmalıdır) aşağıdaki mı?

cevap

39

Sınıf kitaplığınızın "Referanslar" bölümüne gidin ve "Referans Ekle" yi seçin. "PresentationCore" adında bir derleme arayın ve ekleyin.

Sonra sınıf dosyasında Ardından beklediğiniz gibi CommandManager'da erişmek mümkün olacak kullanarak deyimi using System.Windows.Input;

ekleyin.

Sadece ekleyerek: Bir sınıf kütüphanesi oluşturmaya gittiklerinde pek çok kişi "WPF Özel Kontrol Kütüphanesi" ni seçip "Class1.cs" dosyasını siliyorlar. Kitaplığınıza doğru ad alanlarını otomatik olarak ekleyen bir kısayol. İyi ya da kötü bir kısayol olsun, herkesin aramasıdır, ama her zaman kullanırım.

+2

Mükemmel! Teşekkür ederim :) – koala

+2

ve ayrıca class1.cs ipucu için teşekkürler – amaca

İlgili konular