WPF ComboBox大数据源MVVM

时间:2019-03-01 06:22:02

标签: c# wpf mvvm large-data

我有这个组合框,该组合框绑定到具有约5000个条目的客户列表中

var onSuccess = function(data){
    var lat = data.coords.latitude;
    var long = data.coords.longitude;
    var geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(lat, long);
    geocoder.geocode({'latLng': latlng}, function(results, status) {
        if(results[0]){
            var formattedAddress = results[0].formatted_address;
            var comonents = formattedAddress.split(",");
            var country = comonents[comonents.length - 1].trim();
            var city = comonents[comonents.length - 2].trim();
            console.log(+ country +" , "+ city);
            Apperyio("resultLabel").text("country = " + country + ", city = " + city);
        };
    });
};
geolocationService.execute({success: onSuccess});

我转向虚拟化,这有助于更快地获得列表,但是当我添加SelectedValue绑定到我的视图模型时,加载起来非常慢。

有什么办法可以解决这个问题?

致谢

1 个答案:

答案 0 :(得分:1)

组合框中的

5000个条目对系统是相当大的负担。

这也是用户的负担。通常,组合框不应包含超过10个(可辩论)的项目。

通常,我将通过添加一个过滤器来使用户(或系统)进行预选择,该过滤器决定组合框Eg中应显示的项目,所有名称均以“ A”开头,或者如果该名称也仍然如此大,所有名字都以“ Ande”开头。