c# - 绑定(bind)到多个对象

标签 c# xaml xamarin

在我目前的情况下,我有一个列表要显示在我的应用程序中。这个列表应该基于两件事。描述,以及基于每个元素当前状态的颜色。挑战在于描述和颜色在各自的表格中设置。有没有办法将我的 itemsource/bindingcontext 设置为两个不同的对象/表?还是有不同的方法来解决这个问题?

这是我的 XAML 文件绑定(bind)到可访问描述的表:

<StackLayout>
        <ListView x:Name="postListView" ItemSelected="Handle_ItemSelected" >
            <ListView.ItemTemplate>
                <DataTemplate>
                    <TextCell Text="{Binding Description}" />
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>

在我的代码中,postListview 被设置为其中一个表:

PostListView.itemSource = _chekc;

我无法设置两个不同的项目源,因此无法绑定(bind)到我的其他表 _answer 中的颜色。

有什么解决方法吗?

最佳答案

这是一个常见问题:您必须显示一个列表,该列表是来自多个表的数据的组合。您不能将 ItemsSource 设置为多个来源这一事实并不是 ListView 中必须解决的错误……这是您设计中的一个限制……您需要构建一个正确处理此问题的 View 模型情况。

因此,实现此目的的一种方法是拥有一个 PostRowView 类,它是来自两个表的一对颜色和描述,以及一个管理 PostRowView 的 ObservableCollection。您将 ListView 的 ItemsSource 绑定(bind)到可观察集合。

关于c# - 绑定(bind)到多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43717962/

相关文章:

c# - ListBox Item 将冲突的属性返回给子项

facebook - Xamarin/monotouch 获取 Facebook 好友列表

c# - 用于更改可为空和非空数据类型的数据注释是什么?

c# - DataflowBlock.Complete() 据说会阻止 block 产生更多消息,排队的项目会发生什么?

c# - 使用 System.Threading.Timer 和 Monitor 的线程安全执行

c# - 在哪里放置非托管 DLL 以用于导入 C# 程序?

基于当前的 WPF 样式

wpf - 如何使 WPF ListView 项目水平和垂直重复?

visual-studio - Visual Studio 中的 Xamarin F# 项目

c# - Xamarin-在Gridview中创建一个额外的列,其垂直跨度为2