繁体   English   中英

从列表视图中删除所选项目后,绑定不会改变

[英]After removing selected item from list view, binding doesn't change

我正在编写 xamarin 表单应用程序,但在从ListView绑定SelectedItem遇到问题。 一切都很好,直到SelectedItemObservableCollection删除。 此操作后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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM