2016-09-18 179 views
0

好指定,我有以下关于这些问题2个员额[Post 1Post 2]后都进入下面的方法。但是,在遵循正确的实施方式之后,这个问题正在让我大失所望。无法设置multibinding因为多值转换器必须WPF

因此,这里是我的转换器,它在ViewModels目录项目的补充道:

public class ChangePasswordConverter : IMultiValueConverter 
{ 
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) 
    { 
     return .... 
    } 

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

现在,下面是我的HomeWindow.xaml

<Controls:MetroWindow x:Class="KEOffice.Views.HomeWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro" 
    xmlns:v="clr-namespace:KEOffice.Views" 
    xmlns:vm="clr-namespace:KEOffice.ViewModels" 
    xmlns:prism="http://prismlibrary.com/" 
    prism:ViewModelLocator.AutoWireViewModel="True"> 

    <Window.Resources> 
     <vm:ChangePasswordConverter x:Key="ChangePasswordConverter" /> 
    </Window.Resources> 
    <!--But when I try to do this--> 
    <Button Command="{Binding ChangePassword.UpdatePassword}"> 
      <Button.CommandParameter> 
       <MultiBinding ConverterParameter="{StaticResource ChangePasswordConverter}"> 
        <Binding Path="OldPass" ElementName="OldPass"/> 
        <Binding Path="NewPass" ElementName="NewPass"/> 
        <Binding Path="ConfirmPass" ElementName="ConfirmPass"/> 
       </MultiBinding> 
      </Button.CommandParameter> 
    </Button> 
</Controls:MetroWindow> 

即使我已经给适当的参考viewmodels,其中转换器存在并指定有效StaticResource则抛出Cannot set multibinding because multivalue converter must be specified。我也做过重建,清理重建等,但仍然是同样的问题。还有什么我需要注意使其正常工作?

回答

1

您不使用ConverterParameter指定转换器,您使用Converter。

+0

屎人..那一个属性.. :(感谢您的快速回答... :) –