首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MvvmCross绑定ObservableCollection<MyItem>到ObservableCollection<object>

MvvmCross绑定ObservableCollection<MyItem>到ObservableCollection<object>
EN

Stack Overflow用户
提问于 2015-02-16 13:20:50
回答 2查看 1.4K关注 0票数 0

我创建了一个自定义视图(MyCustomView),可以在android中使用。单击它时,它将打开一个包含列表的对话框(MyDialog)。

MainPageLayout -> MyCustomView ->单击-> MyDialog

MyDialog继承自MvxDialogFragment:

代码语言:javascript
复制
public class MyDialog : MvxDialogFragment
{
    public event EventHandler ItemSourceChanged;

    public ObservableCollection<MyItem> ItemsSource
    {
        get
        {
            return itemsSource;
        }

        set
        {
            itemsSource = value;
            if (ItemSourceChanged != null)
            {
                ItemSourceChanged.Invoke(this, new EventArgs());
            }
        }
    }

    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    {
        var ignored = base.OnCreateView(inflater, container, savedInstanceState);
        var view = this.BindingInflate(Resource.Layout.my_layout, container, false);
        var listview = view.FindViewById<MvxListView>(Resource.Id.my_listview);
        listview.ItemsSource = ItemsSource;
        return view;
    }
}

ViewModel:

代码语言:javascript
复制
public class MyViewModel : MvxViewModel
{
    public ObservableCollection<MyItem> MyCollection
    {
        get { return myCollection; }
        private set { SetProperty(ref myCollection, value); }
    }
}

到目前为止,一切都很好--这就像预期的一样。在视图中创建绑定集,并显示VM的"MyCollection“列表。

但是,我非常希望将MyDialog与其他不同的集合一起使用,而不仅仅是ObservableCollection<MyItem>。为了实现这一点,我将MyDialog中的MyDialog更改为ObservableCollection<object>,但这将导致不再调用它的setter (通过绑定集),因此listview的itemSource设置为null。

我怎样才能使MyDialog更通用?

EN

回答 2

Stack Overflow用户

发布于 2015-02-16 15:23:51

公共类MyDialog<T>将使其成为通用类。

示例:www.dotnetperls.com/generic

票数 0
EN

Stack Overflow用户

发布于 2015-03-25 09:06:55

你试过使用dynamic吗?

代码语言:javascript
复制
public ObservableCollection<dynamic> ItemsSource

我使用一个动态对象将对象和集合从一个ViewModel传递到下一个

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28542375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档