Ниже приведен код xaml и C# для обработки выбранных элементов в моем gridview.WinRT XAML Toolkit BindableSelections, не обновляющий UI
Я также использую MVVM Light, и все работает, включая меня, чтобы видеть, что внутри SelectedItems.
Однако, когда я пытаюсь очистить SelectedItems, мой пользовательский интерфейс, похоже, не обновляет/не отражает изменения, внесенные в SelectedItems.
Я использую WinRT XAML Toolkit (http://winrtxamltoolkit.codeplex.com/), который имеет расширение BindableSelection на GridView через
XAML
<controls:CustomGridView
x:Name="VideoItemGridView"
Grid.Row="2"
Margin="0,-3,0,0"
Padding="116,0,40,46"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
IsItemClickEnabled="True"
SelectionMode="Extended"
Extensions:GridViewExtensions.BindableSelection="{Binding SelectedVideoItems, Mode=TwoWay}"
ItemsSource="{Binding Source={StaticResource ViewSource}}"
ItemTemplate="{StaticResource VideoItemTemplate}">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid ItemWidth="250" ItemHeight="160" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</controls:CustomGridView>
MyViewViewModel.cs
#region Selected Items
/// <summary>
/// Gets or sets the selected video items.
/// </summary>
public ObservableCollection<object> SelectedVideoItems
{
get { return this._selectedVideoItems; }
set
{
this._selectedVideoItems = value;
this.Set("SelectedVideoItems", ref this._selectedVideoItems, value);
}
}
private ObservableCollection<object> _selectedVideoItems = new ObservableCollection<object>();
#endregion
#region App Bar Click Commands
/// <summary>
/// Gets the ClearSelection click command.
/// </summary>
public ICommand ClearSelectionClickCommand
{
get
{
return new RelayCommand(() => this.ClearSelectionOperation());
}
}
/// <summary>
/// Selects all command operation.
/// </summary>
private void ClearSelectionOperation()
{
this.SelectedVideoItems = new ObservableCollection<object>();
}
#endregion
Вы используете текущую версию набора инструментов из исходного кода или пакета NuGet? Недавно были некоторые обновления (7 марта), которые еще не попали в новый пакет NuGet. –