【发布时间】:2017-02-20 05:31:41
【问题描述】:
我正在开发一个 Xamarin.Forms 项目。
我在列表视图上有一个行为,它正在使用转换器对命令进行绑定。我使用 XAML 和 C# 完成了它,并且运行良好。
XAML 部分:
<ListView.Behaviors>
<bh:ListViewPagingBehavior
Command="{Binding LoadMoreLeadOfTheDateCommand}"
Converter="{StaticResource ItemVisibilityConverter}">
</bh:ListViewPagingBehavior>
</ListView.Behaviors>
但现在我只需要在代码隐藏上执行此过程,因为我需要在代码隐藏中创建我的列表视图。
我试图像这样引用这个 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
culture = null
我的所有 C# 代码中的 Convert() 参数错误:
value = DelegateCommand
targetType = ICommand
参数 = null
文化 = {fr-FR}
谁能告诉我我哪里错了? 非常感谢!
【问题讨论】:
标签: c# listview xamarin.forms behavior ivalueconverter