У меня есть ListView
, который я бы хотел, чтобы он повторно оценил его SelectedItem
после получения нового ItemSource
. Цель этого - «запомнить», если пользователь уже выбрал элемент в ListView
.Переоценить SelectedItem ListView после изменения ItemSource
XAML:
<ListView
x:Name="_matchingTvShowsFromOnlineDatabaseListView"
Grid.Row="0"
Grid.Column="0"
Grid.RowSpan="3"
ItemsSource="{Binding AvailableMatchingTvShows}"
SelectedItem="{Binding AcceptedMatchingTvShow, Mode=TwoWay}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
SelectedItem
также привязан к собственности на моей виртуальной машине.
ВМ:
public IWebApiTvShow AcceptedMatchingTvShow
{
get
{
IWebApiTvShow acceptedTvShow = null;
if (FoundTvShows.Count > 0)
{
var tvShowName = FoundTvShows[CurrentTvShow];
acceptedTvShow = AvailableTvShowMatches[tvShowName].FirstOrDefault(webApiTvShow => webApiTvShow.Accepted);
}
return acceptedTvShow;
}
set
{
if (value != null)
{
var tvShowName = FoundTvShows[CurrentTvShow];
var currentlyAcceptedTvShow =
AvailableTvShowMatches[tvShowName].FirstOrDefault(webApiTvShow => webApiTvShow.Accepted);
if (currentlyAcceptedTvShow != null)
{
currentlyAcceptedTvShow.Accepted = false;
}
value.Accepted = true;
}
OnPropertyChanged();
}
}
Я сделал снимок экрана приложения я в здании, которое, надеюсь, ясно, что я пытаюсь достичь.
Идея заключается в том, что, когда пользователь навигации по ТВ-шоу, приложение запомнит соответствующий ТВ-шоу.
В настоящее время, когда я связываю ТВ-шоу, и перейдите к следующему ТВ-шоу и обратно, ничего не выбрано (добытчик свойства AcceptedMatchingTvShow
не выполняется после установки нового ItemSource
)
UPDATE:
Добавлен код для AvailableMatchingTvShows
private ObservableCollection<IWebApiTvShow> _availableMatchingTvShows;
public ObservableCollection<IWebApiTvShow> AvailableMatchingTvShows
{
get { return _availableMatchingTvShows; }
set
{
_availableMatchingTvShows = value;
OnPropertyChanged("AcceptedMatchingTvShow");
}
}
Возможно ли опубликовать код, связанный с 'Доступными часами? – Sandesh