【问题标题】:Xamarin - Having problems binding a ObservableCollection within another ObservableCollection in a CollectionViewXamarin - 在 CollectionView 中的另一个 ObservableCollection 中绑定 ObservableCollection 时遇到问题
【发布时间】:2020-09-22 19:42:11
【问题描述】:

我有一个 CollectionView,它绑定到称为 UserPermissions 的 ObserableCollection。 在 FrontUserPermissionsModel 类中,我有另一个称为 MyPermissions 的 ObservableCollection。

我正在尝试做这样的事情:

                <CollectionView x:Name="CollectionViewEmployees" Margin="0,10,0,0" ItemsSource="{Binding UserPermissions}" SelectionMode="Single" Grid.Row="0"
                    SelectionChangedCommand ="{Binding SelectedUSerPermissionsDetailsCommand}" SelectedItem="{Binding SelectedUSerPermission}">
                   <CollectionView.ItemTemplate>
                        <DataTemplate>
                            <StackLayout Padding="5,3,5,9">
 .
 .
 .
 .

                                     <StackLayout x:Name="SettingItemsLayout" Grid.Row="7" BackgroundColor="red" Grid.Column="0" HeightRequest="300" Grid.ColumnSpan="2" 
                                                         BindableLayout.ItemsSource="{Binding MyPermissions}"  HorizontalOptions="FillAndExpand">
                                                <BindableLayout.ItemTemplate>
                                                    <DataTemplate>
                                                        <Grid>
                                                            <Grid.ColumnDefinitions>
                                                                <ColumnDefinition Width="52*" />
                                                                <ColumnDefinition Width="48*" />
                                                            </Grid.ColumnDefinitions>
                                                            <Label FontSize="18" Grid.Column="0" BackgroundColor="Green" FontAttributes="Bold" HorizontalTextAlignment="Start" Text="{Binding Title}" TextColor="white" />
                                                            <Label FontSize="18" Grid.Column="1" FontAttributes="Bold" HorizontalTextAlignment="Start" Text="{Binding AccessLevel}" TextColor="white" />
                                                        </Grid>
                                                    </DataTemplate>
                                                </BindableLayout.ItemTemplate>
                                            </StackLayout>
                            </StackLayout>
                        </DataTemplate>
                    </CollectionView.ItemTemplate>
                </CollectionView>

UserPermission 绑定正在工作。但是我关于如何绑定 MyPermissions 的语法不正确,我不确定如何修复它。谢谢。

【问题讨论】:

  • 请发布相关型号/虚拟机

标签: c# xamarin.forms data-binding


【解决方案1】:

你的意思是你想让你的StackLayout在视图模型中绑定另一个ObserableCollection

你可以使用Binding Path

可能是这样的:

<StackLayout x:Name="SettingItemsLayout" Grid.Row="7" BackgroundColor="red" Grid.Column="0" HeightRequest="300" Grid.ColumnSpan="2" 
                                                     BindableLayout.ItemsSource="{Binding Source={x:Reference SettingItemsLayout},
     Path=BindingContext.MyPermissions}"  HorizontalOptions="FillAndExpand">
      <BindableLayout.ItemTemplate>
           <DataTemplate>
                <Grid>
                  <Grid.ColumnDefinitions>
                     <ColumnDefinition Width="52*" />
                     <ColumnDefinition Width="48*" />
                  </Grid.ColumnDefinitions>
                     <Label FontSize="18" Grid.Column="0" BackgroundColor="Green" FontAttributes="Bold" HorizontalTextAlignment="Start" Text="{Binding Title}" TextColor="white" />
                     <Label FontSize="18" Grid.Column="1" FontAttributes="Bold" HorizontalTextAlignment="Start" Text="{Binding AccessLevel}" TextColor="white" />
                </Grid>
           </DataTemplate>
       </BindableLayout.ItemTemplate>
</StackLayout>

【讨论】:

  • 没有。 UserPermission 是一个包含 FrontUserPermissionsModel 类的 ObservableCollection。每个 FrontUserPermissionsModel 包含一个 ObservableCollection 有一个包含两个字符串(AccessLevel 和 Title)的类。我想将它们绑定在 StackLayout 对象中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
相关资源
最近更新 更多