e.Tag DelegateCommand Binding - PullRequest
       35

e.Tag DelegateCommand Binding

0 голосов
/ 15 февраля 2012

У меня есть небольшая проблема, и я не могу найти способ ее исправить.Я создаю кнопку с привязкой команд.Эта кнопка вызывает DelegateCommand, но мне нужен «e.Tag» этой кнопки, а DelegateCommand просто возвращает «ноль».Так кто-нибудь из вас знает способ решить эту проблему?пс.ImgSource не связан с Imagesource, поэтому мне нужен этот способ, чтобы изменить его во время выполнения.Сама кнопка работает ..

public Datenbank datab = new Datenbank();
Binding b = new Binding("GetValue");
b.Source = datab;
champbtn.SetBinding(Button.CommandProperty, b);
champbtn.Tag = path;

public class Datenbank : INotifyPropertyChanged
{
    private string _sourcep;
    public string ImgSource
    {
        get { return _sourcep; }

        set
        {
            _sourcep = value;
            NotifyPropertyChanged("ImgSource");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged(string propertyname)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(propertyname));
    }

    public Datenbank()
    {
        GetValue = new DelegateCommand(Set);
    }

    public void Set(object sender, RoutedEventArgs e)
    {
        System.Windows.Controls.Button src = e.Source as System.Windows.Controls.Button;
        string taged = src.Tag.ToString();
        ImgSource = taged;
        //This causes an error because e == null
    }
}

1 Ответ

0 голосов
/ 15 февраля 2012

Вы уверены, что e.Source необходимо? Если вы обрабатываете событие на том же элементе управления, который его вызывает, вы можете вместо этого разыграть отправителя.

...