Ошибка пути BindingExpression при применении BindableSelection (WinRTXAMLToolkit)

Я пытаюсь использовать два ListViews в snyc (один отображается, когда приложение находится в полноэкранном режиме, один для просмотра в режиме Snap). В основном это делается для того, чтобы я мог работать с SelectionChanged-Event основного ListView. К сожалению, использование WinRTXamlFramworks BindableSelection просто приводит к ошибке:

Ошибка: ошибка пути BindingExpression: свойство «FilterListView» не найдено в «System.Collections.ObjectModel.ObservableCollection1[[Filter.FilterType, Filter, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. BindingExpression: Path='FilterListView' DataItem='System.Collections.ObjectModel.ObservableCollection1 [[Filter.FilterType, Filter, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null]], System, Version = 4.0 .0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089'; целевой элемент — «Windows.UI.Xaml.Controls.ListView» (Name = «FilterListViewSnapped»); целевое свойство — «BindableSelection» (тип «Object»)

Судя по ошибке, я предполагаю, что это как-то связано с ItemSouce-Binding, но я не уверен, как это исправить. Любые идеи?

Вот мой XAML:

<ListView Grid.Row="1" 
    Name="FilterListView" 
    SelectionMode="Single" 
    ItemsSource="{Binding}" 
    SelectionChanged="FilterListView_SelectionChanged">

<ListView x:Name="FilterListViewSnapped"
    Grid.Row="3" 
    ScrollViewer.VerticalScrollMode="Enabled" 
    ItemsSource="{Binding}" 
    SelectionMode="Single" 
    IsSwipeEnabled="false" 
    XamlToolkit:ListViewExtensions.BindableSelection="{Binding FilterListView, Mode=TwoWay}" >

person Thomas    schedule 16.06.2013    source источник


Ответы (1)


"{Binding FilterListView, Mode=TwoWay}" привязывается к свойству "FilterListView" DataContext FilterListViewSnapped. IIRC для ListView DataContext обычно совпадает с ItemsSource.

Если вы хотите привязаться к ListView с именем «FilterListView», используйте это: «{Binding ElementName=FilterListView, Mode=TwoWay}».

person HDW Production    schedule 17.06.2013
comment
это не работает с WinRTXamlToolKits BindableSelection. - person Thomas; 17.06.2013
comment
Верно, но это то, что сообщение об ошибке хочет сказать вам. Если вы хотите, чтобы два представления списка использовали один и тот же выбор привязки, вам необходимо прикрепить свойство к обоим представлениям списка и привязать его к коллекции. Эта коллекция должна быть предоставлена ​​вашим кодом. Если привязка к этой коллекции не работает, проверьте (или опубликуйте) сообщения об ошибках. - person HDW Production; 19.06.2013