Xamarin 将SelectedItem设置为null不会重置所选列表项

Xamarin 将SelectedItem设置为null不会重置所选列表项,xamarin,mvvm,xamarin.forms,Xamarin,Mvvm,Xamarin.forms,在my viewmodel中设置SelectedItem=null后,不会重置列表视图的选定项 在我的XAML中,ListView.SelectedItem绑定到我的viewmodel的SelectedItem SelectedItem="{Binding SelectedItem}" SelectedItem的定义如下 LocalProductSummary _selectedItem; public LocalProductSummary SelectedItem { get {

在my viewmodel中设置
SelectedItem=null
后,不会重置
列表视图的选定项

在我的XAML中,
ListView.SelectedItem
绑定到我的viewmodel的
SelectedItem

SelectedItem="{Binding SelectedItem}"
SelectedItem
的定义如下

LocalProductSummary _selectedItem;

public LocalProductSummary SelectedItem
{
    get { return _selectedItem; }
    set
    {
        if (value != null)
        {
            _selectedItem = value;
            OnPropertyChanged();
        }
    }
} 
凝固后

SelectedItem=Null 
列表项不会重置


如何在MVVM中解决此问题?

SelectedItem没有设置null,因为setter方法中有null检查条件

问题就在这里

if (value != null)
{
    SelectedItem = value;
    OnPropertyChanged();
}
您正在检查,如果该值不为null,则设置该值。只需移除条件并进行检查

解决方案:

LocalProductSummary _selectedItem;
public LocalProductSummary SelectedItem
{
    get { return _selectedItem; }
    set
    {
        _selectedItem = value;
        OnPropertyChanged();
    }
} 

SelectedItem没有设置null,因为setter方法中有null检查条件

问题就在这里

if (value != null)
{
    SelectedItem = value;
    OnPropertyChanged();
}
您正在检查,如果该值不为null,则设置该值。只需移除条件并进行检查

解决方案:

LocalProductSummary _selectedItem;
public LocalProductSummary SelectedItem
{
    get { return _selectedItem; }
    set
    {
        _selectedItem = value;
        OnPropertyChanged();
    }
} 

您是否实现了INotifyPropertyChanged
?您可以将绑定:
SelectedItem=“{binding SelectedItem}”
更改为
SelectedItem=“{binding SelectedItem,Mode=TwoWay}”
?添加Mode=TwoWay后不工作:(并且我已经实现了INotifyPropertyChangedis LocalProductSummary从Bindable继承的?您是否实现了INotifyPropertyChanged?是否可以更改绑定:
SelectedItem=“{binding SelectedItem}”
SelectedItem=“{binding SelectedItem,Mode=TwoWay}”
?添加Mode=TwoWay后不工作:(我已经实现了INotifyPropertyChangedis LocalProductSummary从Bindable继承的功能?