Xaml 在Windows 8中,人们使用什么代替IMultiValueConverters?

Xaml 在Windows 8中,人们使用什么代替IMultiValueConverters?,xaml,mvvm,windows-8,Xaml,Mvvm,Windows 8,我正在将现有的WPF应用程序移植到Windows8应用程序 在WPF应用程序中,我们大量使用多值转换器来创建UI元素属性和viewmodel属性(hippo对象的权重和itemscontrol的实际宽度)的组合值,以实现良好的UI效果 然而,Windows8没有多值转换器 因为我正在移植一个应用程序,所以我真的不想对我的viewmodels或Xaml进行重大更改 我怎样才能用最少的痛苦和重写来复制多值控制器功能?我的方法是公开VM的静态单例实例;例如: public class MainView

我正在将现有的WPF应用程序移植到Windows8应用程序

在WPF应用程序中,我们大量使用多值转换器来创建UI元素属性和viewmodel属性(hippo对象的权重和itemscontrol的实际宽度)的组合值,以实现良好的UI效果

然而,Windows8没有多值转换器

因为我正在移植一个应用程序,所以我真的不想对我的viewmodels或Xaml进行重大更改


我怎样才能用最少的痛苦和重写来复制多值控制器功能?

我的方法是公开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>        
Run命令

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

我正在将现有的WPF应用程序移植到Windows 8应用程序。
-我真的为您感到抱歉。到目前为止,WinRT XAML特性集甚至不如Silverlight特性集。这意味着它只是完整WPF功能集的一小部分。这意味着你将不得不求助于各种可怕的黑客来让它正常工作。WinRT是新的CompactFramework,它拥有除……之外的所有功能。所有功能我都使用脏话来代替。他们中的很多人:-作为一种解决方法,你可以考虑使用这个回答中所描述的方法——“七重奏”,看起来很有用,谢谢。如果我回到WinRT land,我会尝试一下。问题不在于如何将viewmodel传递给转换器。它将viewmodel和view属性传递给转换器。(哦,而且您似乎根本没有使用转换器,这让人困惑,因为问题是关于转换器的)。答案是WinRT不支持它。我只是觉得我应该提供另一种方法。