Я пытаюсь связать строку с двумя ScatterViewItems:
private void BindLineToScatterViewItems(Shape line, ScatterViewItem origin, ScatterViewItem destination)
{
// Bind line.(X1,Y1) to origin.ActualCenter
BindingOperations.SetBinding(line, Line.X1Property, new Binding { Source = origin, Path = new PropertyPath("ActualCenter.X") });
BindingOperations.SetBinding(line, Line.Y1Property, new Binding { Source = origin, Path = new PropertyPath("ActualCenter.Y") });
// Bind line.(X2,Y2) to destination.ActualCenter
BindingOperations.SetBinding(line, Line.X2Property, new Binding { Source = destination, Path = new PropertyPath("ActualCenter.X") });
BindingOperations.SetBinding(line, Line.Y2Property, new Binding { Source = destination, Path = new PropertyPath("ActualCenter.Y") });
}
Но я всегда получаю следующее сообщение об ошибке:
System.Windows.Data Ошибка: 5: значениесозданный BindingExpression недействителен для целевого свойства .;Значение = 'NaN' BindingExpression: Path = ActualCenter.X;DataItem = 'ScatterViewItem' (Name = '');целевой элемент - «Линия» (Name = '');Свойство target - 'X1' (тип 'Double')
Тем не менее, оно работает, но как я могу подавить это предупреждение?И почему отображается это предупреждение?
РЕДАКТИРОВАТЬ: В соответствии с ответом ниже, я сейчас использую следующий конвертер, но все еще получаю ошибки:
public class NormalizationConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (double) value == double.NaN ? Binding.DoNothing : (double) value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}