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

Jon*_*n B 5 xaml mvvm windows-8

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

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

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

由于我正在移植一个应用程序,我真的不想显着改变我的viewmodels或Xaml.

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

Pau*_*els 0

我的方法是公开虚拟机的静态单例实例;例如:

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

            return _mvm;
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后简单地传递整个虚拟机:

<Button Command="{Binding MyCommand}" CommandParameter="{Binding MVM}">Run Command</Button>        
Run Code Online (Sandbox Code Playgroud)

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