在ListView渲染器中更新

时间:2017-02-03 08:20:51

标签: android forms listview xamarin renderer

我需要原生ListView更新项目数据。

1。使用Xamarin.Forms ListView。带有DataItem的简单INotifyPropertyChanged模型:

    List<DataItem> Data = new List<DataItem>();
    // ... fill Data
    ListView listDevice = new ListView();
    listDevice.ItemsSource = Data;
    listDevice.ItemTemplate = new DataTemplate(typeof(DataView));
    ...
    void BtnTest_Clicked(object sender, EventArgs e)
    {
        Data[0].DeviceName = "Update OK";
    }

点击btnTest后,我立即在第一个ListView元素中看到“Update OK”。一切都很好。

2。使用Renderer for ListView。我使用WorkingWithListviewNative示例,它具有渲染器和适配器。我将DataSource2替换为DataItem模型(无处不在)并添加相同的btnTest。带有数据的列表是可见的,但是当点击按钮时没有任何变化。向下滚动向上看我的变化。

我需要将哪些代码添加到渲染器(到OnElementPropertyChanged?)或适配器?

1 个答案:

答案 0 :(得分:0)

而不是List使用ObservableCollection,你不需要在处理它时进行属性更改通知。