Я работаю над проектом Xamarin.Forms.Команда привязки к поведению с преобразователем
У меня есть поведение в listview, которое выполняет привязку к команде с конвертером. Я сделал это с XAML и C#, и он отлично работает.
XAML часть:
<ListView.Behaviors>
<bh:ListViewPagingBehavior
Command="{Binding LoadMoreLeadOfTheDateCommand}"
Converter="{StaticResource ItemVisibilityConverter}">
</bh:ListViewPagingBehavior>
</ListView.Behaviors>
Но теперь мне нужно сделать этот процесс на код-за только, потому что мне нужно, чтобы создать свой ListView в отделенном коде.
Я попытался злословить этот XAML как это:
ListViewPagingBehavior behavior = new ListViewPagingBehavior();
behavior.SetBinding(ListViewPagingBehavior.CommandProperty, "LoadMoreLeadOfTheDateCommand", BindingMode.Default, new ItemVisibilityEventArgsConverter());
myListView.Behaviors.Add(behavior);
несчастливо, то IValueConverter не извлекает те же параметры, как и раньше на методе Convert() ...
Мой конвертер:
public class ItemVisibilityEventArgsConverter : IValueConverter
{
public object Convert (object value, Type targetType, object parameter, CultureInfo culture)
{
var eventArgs = value as ItemVisibilityEventArgs;
return eventArgs.Item;
}
public object ConvertBack (object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
Хорошие показатели Convert() с рабочим кодом:
значение = Xamarin.Forms.ItemVisibilityEventArgs
TargetType = System.Object
параметр = нуль
культура = null
Плохие параметры Convert() с моей все C# код:
значение = DelegateCommand
TargetType = ICommand
параметр = нуль
культура = {фр-FR}
Может кто-нибудь сказать мне, где я не прав? Спасибо большое!
Я не знаю почему, я не видел, что поведение имеет свойство преобразователя. Теперь он работает отлично. Спасибо за ваше время maddhew :) – Thunderburst
Ха-ха, я плохо, я нажал на «старейшую» вкладку и странно, что ваш пост был вторым. Исправлено;) – Thunderburst