我正在尝试创建在表单底部具有一组字段和分页按钮的数据表单。
我希望 Paging 成为一个单独的控件,其中包含 First、Previous、Next、Last 和标签 Item 1 of n。
这种分页控件将用于任何数据输入表单,以允许用户在前一条记录之间来回切换。例如,订单、发票、付款是数据表单。用户选择订单时,会显示新订单。它还具有用于移动到上一条记录的分页按钮。
我创建了一个名为 DataPager 的 UserControl,它具有 PagingItems 的依赖属性。我希望这个依赖属性是通用的,以便我可以传递项目列表(订单、发票、付款)
为此,我做了:在用户控件中列出。我尝试以需要分页的形式绑定它。
public List<object> Items
{
get { return (List<object>)GetValue(ItemsProperty); }
set { SetValue(ItemsProperty, value); }
}
// Using a DependencyProperty as the backing store for Items. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ItemsProperty =
DependencyProperty.Register("Items", typeof(List<object>), typeof(DataPager), new UIPropertyMetadata(null, LoadItems));
private static void LoadItems(DependencyObject obj, DependencyPropertyChangedEventArgs e)
{
DataPager thisControl = (DataPager)obj;
thisControl.RefreshItems();
}
我在使用控件和绑定的页面中收到以下错误:
System.Windows.Data Error: 1 : Cannot create default converter to perform 'one-way' conversions between types 'System.Collections.Generic.List`1[PagingSample.Order]' and 'System.Collections.Generic.List`1[System.Object]'. Consider using Converter property of Binding. BindingExpression:Path=Orders; DataItem='MainViewModel' (HashCode=26754911); target element is 'DataPager' (Name='dataPager1'); target property is 'Items' (type 'List`1')
System.Windows.Data Error: 5 : Value produced by BindingExpression is not valid for target property.; Value='System.Collections.Generic.List`1[PagingSample.Order]' BindingExpression:Path=Orders; DataItem='MainViewModel' (HashCode=26754911); target element is 'DataPager' (Name='dataPager1'); target property is 'Items' (type 'List`1')
不确定如何使 DataPager 控件项属性保持通用。我还没有想出如何告诉父控件 CurrentItem 显示。
但想清除第一道障碍。任何帮助表示赞赏。