【问题标题】:ListView SelectedItem not updating UI after ListView been clearedListView SelectedItem 在 ListView 被清除后不更新 UI
【发布时间】:2013-06-12 17:36:54
【问题描述】:

我在 Windows 应用商店应用中使用 Caliburn Micro。

我有一个 ListView,它有一个 SelectedItem,在我第一次使用它时就可以使用。但是,当我清除 ListView 并将其重新绑定到另一个 Collection 时,所选项目不再显示为选中状态。

已正确设置 selectedItem 属性,因为我可以打断点,并且一切正常,只是在我清除集合后视图没有使用所选项目更新。

可能出了什么问题?

谢谢。

编辑:

查看代码:

<ListView x:Name="DetailNotes"
          ItemsSource="{Binding DetailNotes}"
          SelectedItem="{Binding SelectedDetailNote}"                                  
          ItemTemplate="{StaticResource Notes600ItemTemplate}"
          IsItemClickEnabled="True"
          caliburn:Message.Attach="[Event ItemClick] = [DetailNoteSelected($eventArgs)]"/>

ViewModel 代码:

(...)
private Note selectedDetailNote;

public Note SelectedDetailNote
{
    get { return this.selectedDetailNote; }
    set 
    { 
        this.selectedDetailNote = value; 
        this.NotifyOfPropertyChange(() => this.SelectedDetailNote); 
    }
}

(...)

public void DetailNoteSelected(ItemClickEventArgs eventArgs)
{
    Note n = (Note)eventArgs.ClickedItem;
    this.SelectedDetailNote = n;
}

【问题讨论】:

  • 你能贴一些代码吗?
  • 是的,我可以。已更新问题。
  • 对不起。我认为问题与我正在清除集合有关,但问题只是我使用了一些显式绑定。在我删除它之后,一切正常。

标签: c# windows-store-apps winrt-xaml caliburn.micro


【解决方案1】:

对不起!问题是我的显式绑定。我刚刚离开 Caliburn 做他的工作,现在它可以工作了! 解决方法如下:

查看代码:

<ListView x:Name="DetailNotes"
          ItemTemplate="{StaticResource Notes600ItemTemplate}"/>

ViewModel 代码:

private Note selectedDetailNote;

public Note SelectedDetailNote
{
    get { return this.selectedDetailNote; }
    set 
    { 
        this.selectedDetailNote = value; 
        this.NotifyOfPropertyChange(() => this.SelectedDetailNote); 
    }
}

【讨论】:

    【解决方案2】:

    我知道已经晚了,但您的问题是绑定模式。您应该将其设置为 TwoWay:

          SelectedItem="{Binding SelectedDetailNote, Mode=TwoWay}" 
    

    在 WinRT XAML 中默认为 OneWay。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-03
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多