[英]After removing selected item from list view, binding doesn't change
我正在编写 xamarin 表单应用程序,但在从ListView
绑定SelectedItem
遇到问题。 一切都很好,直到SelectedItem
从ObservableCollection
删除。 此操作后SelectedItem
仍包含以前的值,但它应该等于null
。
为什么它不起作用以及如何修复它。
<ListView ItemsSource="{Binding Clients}" SelectionMode="Single" SelectedItem="{Binding SelectedSocket}">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding HostEntry.HostName}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
public ObservableCollection<TcpSocket> Clients { get; set; } = new ObservableCollection<TcpSocket>();
private TcpSocket _SelectedSocket { get; set; }
public TcpSocket SelectedSocket
{
get => _SelectedSocket;
set
{
_SelectedSocket = value;
PropertyChanged(this, new PropertyChangedEventArgs(nameof(SelectedSocket)));
}
}
在点击按钮之后,类似的东西:
Clients.Remove(SelectedSocket);
从集合中删除所需的属性后,手动将其设置为 null,这样甚至可以引发更改的属性。
//...
public void OnClick(object sender, EventArgs e) {
Clients.Remove(SelectedSocket); //raises collection changed
SelectedSocket = null; //raises property changed
}
//...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.