如何在GridViewItem上自动设置IsSelected?

时间:2012-10-18 19:05:27

标签: c# wpf gridview user-controls microsoft-metro

我有一个列表,其中包含具有所有属性的对象: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);
}

2 个答案:

答案 0 :(得分:1)

我太近了。我只需要设置:

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

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

..选择所有项目。

答案 1 :(得分:1)

您还可以使用WinRT XAML Toolkit中的ListViewExtensions。BindnableSelection,它允许您绑定到GridView的ItemsSource子集的列表,其中包含您想要选择的项目。