Как реализовать ReactiveUI ObservedChange? - PullRequest
0 голосов
/ 27 октября 2018

Я хочу использовать EventHandler MouseEnter & MouseLeave, чтобы изменить OpasityMask изображений, эти изображения будут генерироваться во время выполнения, на разных страницах. Дело в том, что мне нужно иметь доступ к отправителю, чтобы изменить свойство OpacityMask для MouseHover команды класса ViewModel .

View

this.WendActivated(d =>
{
    d(this.BindCommand(ViewModel, 
       vm => vm.MouseHover, 
       v => v.myImage, 
       myImage.Events().MouseEnter));
});

ViewModel

private void Image_MouseEnterExecute(object sender, MouseEventArgs e)
{
    PlaySound("mouse_hover.mp3");

    var image = sender as Image;
    image.OpacityMask = new SolidColorBrush { Opacity = 1, Color = Colors.Black };
}

Я не знаю, как реализовать Событие, чтобы изменить OpacityMask

public ReactiveCommand MouseHover => image_MouseEnter;
public ObservedChange<object, object> ImageBrush => imageBrush;

public ViewModel()
{
    //Can not convert method group to action.
    image_MouseEnter = ReactiveCommand.Create(Image_MouseEnterExecute);
    //Can not convert method group to action.
    imageBrush = ReactiveCommand.Create(Image_MouseEnterExecute);
}

Почему я не устанавливаю привязку к свойству OpacityMask Проблема в том, что у меня много изображений, некоторые из которых создаются во время выполнения. Я не хочу, чтобы все изображения изменялись одновременно или чтобы было создано свойство OpacityMask для каждого изображения.


Я надеюсь, что кто-то с опытом может мне помочь.

...