C# 绑定到多个对象

C# 绑定到多个对象,c#,xaml,xamarin,C#,Xaml,Xamarin,在我目前的情况下,我有一个列表要显示在我的应用程序中。这个列表应该基于两件事。描述和颜色,该颜色基于每个元素的当前状态。挑战在于描述和颜色在各自的表中设置。有没有办法将我的itemsource/bindingcontext设置为两个不同的对象/表?还是有其他的方法来解决这个问题 这是我的XAML文件绑定到描述可访问的表: <StackLayout> <ListView x:Name="postListView" ItemSelected="Handle_Item

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

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

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

在我的代码隐藏中,postListview设置为以下表格之一:

PostListView.itemSource=\u chekc

我无法设置两个不同的itemsources,因此无法绑定到另一个表中的颜色


有解决办法吗

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


这样做的一种方法是使用一个PostRowView类,它是来自两个表的颜色和描述的配对,以及一个管理PostRowView的ObservableCollection。您可以将ListView的ItemsSource绑定到observable集合。

从这个答案中需要强调的最重要的事情是正确创建视图的需要/要求。大多数使用WPF的人都遵循MVVM前端架构。看一看,如果不是的话,我们的习惯是将其称为ViewModel。是的,ViewModel应该过滤/组合/预处理数据以简化视图。这回答了我的问题!你们中有谁有关于如何将颜色和描述与PostRowView类配对的示例吗?