1

我有一个包含所有属性的对象列表:IsSelected。现在,如果属性为 true,我尝试自动选择 GridView 中的项目。

我试图在 GridView 中覆盖 PrepareContainerForItemOverride 并设置与对象的绑定,但没有成功。有任何想法吗?

protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{
    base.PrepareContainerForItemOverride(element, item);

    var listItem = element as GridViewItem;
    var binding = new Binding 
    {
        Mode = BindingMode.TwoWay, 
        Source = item, 
        Path = new PropertyPath("Selected")
    };
    if (listItem != null) 
        listItem.SetBinding(SelectorItem.IsSelectedProperty, binding);
}
4

2 回答 2

1

我是如此接近。我只需要设置:

protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{
    base.PrepareContainerForItemOverride(element, item);

    var listItem = element as GridViewItem;
    listItem.IsSelected = true;
}

..选择所有项目。

于 2012-10-18T19:12:49.570 回答
1

您还可以使用WinRT XAML 工具包中的ListViewExtensions .BindnableSelection,它允许您绑定到一个列表,该列表是您的 GridView 的 ItemsSource 的子集,并且包含您想要选择的项目。

于 2012-10-18T22:53:40.537 回答