Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Я полагаю, что можно сделать это с преобразователем значения. Вот запись в блоге , который адресует передачу параметра к преобразователю значения в xaml. И этот блог предоставляет некоторую подробную информацию реализации преобразователя значения.
Используя значение преобразователь является хорошим решением проблемы, поскольку это позволяет Вам изменять исходное значение, поскольку это связывается с UI.
я использовал следующее в нескольких местах.
public class AddValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
object result = value;
int parameterValue;
if (value != null && targetType == typeof(Int32) &&
int.TryParse((string)parameter,
NumberStyles.Integer, culture, out parameterValue))
{
result = (int)value + (int)parameterValue;
}
return result;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Пример
<Setter Property="Grid.ColumnSpan"
Value="{Binding
Path=ColumnDefinitions.Count,
RelativeSource={RelativeSource AncestorType=Grid},
Converter={StaticResource addValueConverter},
ConverterParameter=1}"
/>
Я никогда не использовал WPF, но у меня есть возможное решение.
Ваша привязка может Соединить карту каналом к Карте? Если так, это должно тогда быть в состоянии взять аргумент (ключ). Необходимо было бы создать класс, который реализует интерфейс Map, но действительно просто возвращает основное значение, что Вы инициализировали "Карту" с добавленным к ключу.
public Integer get( Integer key ) { return baseInt + key; } // or some such
Без некоторой способности передать число от тега, я не вижу, как Вы собираетесь заставить это возвращать различные дельты из исходного значения.