多路绑定使用MultiBinding类
public partial class MultiPage : Page
{
public MultiPage()
{
InitializeComponent();
Binding binding = new Binding("Text") { Source=this.tb1};
Binding binding1 = new Binding("Text") { Source = this.tb2 };
Binding binding2 = new Binding("Text") { Source = this.tb3 };
MultiBinding multiBinding= new MultiBinding();
multiBinding.Bindings.Add(binding);
multiBinding.Bindings.Add(binding1);
multiBinding.Bindings.Add(binding2);
multiBinding.Converter = new SureConverter();
sureButton.SetBinding(Button.IsEnabledProperty,multiBinding);
}
}
public class SureConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
if (!values.Cast<string>().Any(text => string.IsNullOrEmpty(text)))
{
if (values[0].ToString() == "User" && values[1].ToString() == "123456" && values[2].ToString()=="123456")
return true;
}
return false;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
结果: