人们在Windows 8中使用什么而不是IMultiValueConverter?

时间:2013-07-04 04:11:14

标签: xaml mvvm windows-8

我正在将现有的WPF应用程序移植到Windows 8应用程序。

在WPF应用程序中,我们大量使用MultiValue转换器,以允许我们创建值,这些值是UI元素属性和viewmodel属性(hippo对象的权重和itemscontrol的actualWidth)的组合,以实现漂亮的UI效果。

但是,Windows 8没有MultiValue转换器。

由于我正在移植一个应用程序,我真的不想显着改变我的视图模型或Xaml。

如何以最少的痛苦和重写来复制多值控制器功能?

1 个答案:

答案 0 :(得分:0)

我的方法是公开VM的静态单例实例;例如:

public class MainViewModel : INotifyPropertyChanged
{
    private static MainViewModel _mvm;
    public static MainViewModel MVM
    {
        get
        {
            if (_mvm == null)
                _mvm = new MainViewModel();

            return _mvm;
        }
    }

然后简单地通过整个VM:

<Button Command="{Binding MyCommand}" CommandParameter="{Binding MVM}">Run Command</Button>        

它不是多重绑定,但它允许您传递多个参数。