1

我目前正在尝试使 ViewA 中的滑块更改 viewA 和 viewB 中文本的字体大小。我已经正确绑定了所有内容,但是当字体大小属性更改时,委托命令没有调用执行方法。如果我手动调用这个函数,一切都会按预期工作,所以很可能是一行代码出现了问题。ViewAViewModel 如下:

public class ViewAViewModel : BindableBase
{
    private Person _CoolChick = new Person();
    private int _fontSize = 12;
    private IEventAggregator _eventAggregator;
    public DelegateCommand UpdateSizeCommand { get; set; }

    public Person CoolChick
    {
        get
        {
            return _CoolChick;
        }
        set
        {
            SetProperty(ref _CoolChick, value);
        }
    }

    public int FontSize
    {
        get { return _fontSize; }
        set {
            Console.WriteLine(_fontSize + " => Font Size");
            SetProperty(ref _fontSize, value);
            //Execute();
        }
    }

    public ViewAViewModel(IEventAggregator eventAggregator)
    {
        CoolChick.Age = 25;
        CoolChick.Name = "Methalous";
        _eventAggregator = eventAggregator;

        //likely the problem in this code
        UpdateSizeCommand = new DelegateCommand(Execute, CanExecute).ObservesProperty(() => FontSize);

    }

    private void Execute()
    {
        _eventAggregator.GetEvent<UpdateEvent>().Publish(FontSize);
    }

    private bool CanExecute()
    {
        return true;
    }
}
4

1 回答 1

0

为什么会呢?您没有在 Font 属性的设置器中调用 UpdateSizeCommand.Execute 。除非您将命令绑定到命令属性或手动调用它,否则该命令不会调用。

于 2016-06-09T21:54:39.917 回答