我正在将现有的WPF应用程序移植到Windows 8应用程序。
在WPF应用程序中,我们大量使用MultiValue转换器,以允许我们创建值,这些值是UI元素属性和viewmodel属性(hippo对象的权重和itemscontrol的actualWidth)的组合,以实现漂亮的UI效果。
但是,Windows 8没有MultiValue转换器。由于我正在移植一个应用程序,我真的不想显着改变我的视图模型或Xaml。
如何以最少的痛苦和重写来复制多值控制器功能?
答案 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>
它不是多重绑定,但它允许您传递多个参数。