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

また、WinRT XAML Toolkit からListViewExtensions .BindnableSelection を使用することもできます。これにより、GridView の ItemsSource のサブセットであり、選択する項目を含むリストにバインドできます。

于 2012-10-18T22:53:40.537 に答える
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 に答える