내 목록 상자, notifypropertychange 이벤트 및 다음 페이지로의 전환시 selectedindex = -1 설정에이 문제가 있습니다.windows phone 7, selectedindex 및 propertychanged 이벤트 문제
기본적으로 목록에서 항목을 선택합니다. 이렇게하면 항목에 대한 세부 정보를 제공하는 다른 페이지가 열립니다. 그러나 항목을 선택하면 세부 정보 페이지로 전환 된 후 selectedindex를 -1로 설정해야합니다.
그러나 코드를 작성하면 selectedindex = -1이됩니다. line에서는 propertychange 이벤트 발생으로 인해 함수를 다시 호출합니다. 그런 다음 응용 프로그램이 중단되는 세부 정보 페이지에 null 값을 전달합니다. 선택할 피드의
목록 :
여기 내 관련 코드입니다. 특정 항목을 선택하면 Listbox_SelectionChanged가 실행됩니다.
public UserSubmitted()
{
InitializeComponent();
Loaded += delegate(object sender, RoutedEventArgs e)
{
this.DataContext = App.ViewModel;
};
}
private void listbox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
NavigationService.Navigate(new Uri("/PivotPage1.xaml", UriKind.Relative));
hello.SelectedIndex = -1; //hello = listbox name.
}
다음은 내 ViewData 모델입니다. PropertyChanged 이벤트에서 시작한 다음 보낸 사람을 비교합니다. 그런 다음 SelectedItem을 설정합니다.
public ObservableCollection<RssItem> FeedItems
{
get { return _feedItems; }
set
{
if (_feedItems == value)
return;
_feedItems = value;
NotifyPropertyChanged(this, new PropertyChangedEventArgs("FeedItems"));
}
}
public string FeedTitle
{
get { return _FeedTitle; }
set
{
if (_FeedTitle == value)
return;
_FeedTitle = value;
NotifyPropertyChanged(this, new PropertyChangedEventArgs("FeedTitle"));
}
}
public RssItem SelectedItem
{
get { return _SelectedItem; }
set
{
if (_SelectedItem == value)
return;
_SelectedItem = value;
NotifyPropertyChanged(this, new PropertyChangedEventArgs("SelectedItem"));
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(object sender, PropertyChangedEventArgs args)
{
if (PropertyChanged != null)
PropertyChanged(sender, args);
}
다음 줄로 이동합니다. hello.SelectedIndex = 1; 위의 코드를 다시 통과하지만 모든 것을 null로 전달합니다 (모두 -1로 설정 됨).
그런 다음이 정보를 피벗 페이지 (세부 정보 페이지)로 전달합니다.
public PivotPage1()
{
InitializeComponent();
Loaded += (sender, e) =>
{
this.DataContext = App.ViewModel;
var selectedItem = App.ViewModel.SelectedItem;
var pi = ItemPivot.Items.First(p => p == selectedItem); //breaks here as null.
ItemPivot.SelectedItem = pi;
};
}
누구나 알고 계실까요?
왜 SelectedIndex를 -1로 설정해야하는지 이유를 설명해 주시겠습니까? 물론 – ctacke
. 선택에서 특정 피드를 선택할 때 세부 정보를 보려면 세부 사항으로 이동할 때 세부 정보의 뒤로 버튼을 누르면 선택한 피드를 한 번 선택할 수 없습니다. – topcoderwannabe
그래서 문제가 발생하여 다시 돌아와 동일한 피드를 선택할 수 없습니다. 따라서 47 번째 위치 피드 (48 번째 피드)에서 피드를 선택하면 세부 정보를보고 돌아가서 인덱스를 변경할 때까지 48 번째 피드를 선택할 수 없습니다. – topcoderwannabe