我正在使用Caliburn.Micro和LongListSelector。因为绑定 SelectedItem是一个问题,我正在创建一个自定义类
public static readonly DependencyProperty SelectedItemProperty = DependencyProperty.Register(“SelectedItem”,typeof(object),typeof(LongListSelector), new PropertyMetadata(null,OnSelectedItemChanged));
问题是,在返回列表后,当我再次点击同一个项目时,它已经被选中而不起作用。
我使用了TAP事件而不是SelectionChanged并且它可以工作,但是在我的longlistselector中,如果我点击组,我会使用分组和点击事件点击。
帮助我!
答案 0 :(得分:1)
我解决了!!我的问题出在DependecyProperty声明中
private static void OnSelectedItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var selector = (LongListSelector)d;
selector.SelectedItem = e.NewValue;
}
不工作
WORKS此声明
private static void OnSelectedItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var selector = (LongListSelector)d;
selector.SetSelectedItem(e);
}
private void SetSelectedItem(DependencyPropertyChangedEventArgs e)
{
base.SelectedItem = e.NewValue;
}
答案 1 :(得分:0)
在ViewModel的SelectedItem=null
中设置OnActivate
应该可以解决问题。