【问题标题】:xamarin froms listview selecteditem not update value of view - mmvmxamarin 表单列表视图选定项不更新视图值 - mmvm
【发布时间】:2018-06-05 08:51:42
【问题描述】:

当用户选择一行时,我需要在列表视图中显示该行的一个项目。此项目是可见= true,但是当所选项目时,我需要更改为false。

MyObject 类:

  public class MyObject
    {
        public int IdObject { get; set; }
        public string ObjectName { get; set; }
        public bool? CirculoVisible { get; set; } = true;
    }

我的xml:

<ListView ItemsSource="{Binding MyObjects}" 
SelectedItem="{Binding ObjectSeleccionado, Mode=TwoWay}"  >
  <ListView.ItemTemplate>
       <DataTemplate>
           <ViewCell>
                  <Label Text="prueba" IsVisible="{Binding CirculoVisible ,Mode=TwoWay}" />
                  <Label Text="{Binding ObjectName}" TextColor="Black" />
           </ViewCell>
       </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

我的视图模型 (MVVM)。应用程序在此处输入,但没有出现任何内容,并且项目没有更改。 该类具有新值,但属性未更改。

    private MyObject _objectseleccionado;
    public MyObject ObjectSeleccionado
    {
        get
        {
            return _objectseleccionado;
        }

        set
        {
            if (_objectseleccionado != value && value != null)
            {
                value.ObjectName = "Pepito";
                value.CirculoVisible = false;

                _objectseleccionado = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ObjectSeleccionado"));



            }

        }
    }

【问题讨论】:

    标签: forms listview xamarin mvvm selecteditem


    【解决方案1】:

    在二传手 试试这个

    set
        {
            if (_objectseleccionado != value && value != null)
            {
                _objectseleccionado = value;
                _objectseleccionado.ObjectName = "Pepito";
                _objectseleccionado.CirculoVisible = false;
    
    
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ObjectSeleccionado"));
    
    
    
            }
    

    【讨论】:

    • 没什么。我调试并进入 setter 但没有改变。
    • 当您的可绑定对象派生自 INotifyPropertyChanged 接口时,propertychanged 事件将被触发并反映到 UI 中。你在用吗?
    • 是的,我正在使用 InotifyPropertyChanged。
    猜你喜欢
    • 2021-10-23
    • 1970-01-01
    • 2019-08-14
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多