Я пытаюсь передать переменную, определенную внутри модели представления, в пользовательский преобразователь.
Это xaml-файл:
<ContentPage.Resources>
<ResourceDictionary>
<converter:IsLastItemConverter x:Key="lastItemConverter" Collection="{Binding Selfies}" />
</ResourceDictionary>
</ContentPage.Resources>
<ContentPage.Content>
....
<local:Selfie IsLastItem="{Binding ID, Converter={StaticResource lastItemConverter}}" />
....
</ContentPage.Content>
Это код xaml.cs позади
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class SelfieWall : BaseContentPage
{
public SelfieWall()
{
InitializeComponent();
this.BindingContext = new SelfieWallViewModel();
}
}
Это ViewModel
public class SelfieWallViewModel : INotifyPropertyChanged
{
....
public List<Model.Selfie> Selfies { get; set; }
....
}
это преобразователь
public class IsLastItemConverter : IValueConverter
{
public List<Selfie> Collection { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return true;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return true;
}
}
Когда я пытаюсь загрузить представление, определенное в приведенном выше xaml, я получаю сообщение об ошибке
System.NullReferenceException: Object reference not set to an instance of an object.
Ошибка исчезает, если я удаляю
Collection="{Binding Selfies}"
из XAML.
Любые подсказки о том, как передать переменную ViewModel в конвертер.