【发布时间】:2020-07-02 16:13:15
【问题描述】:
目前我有一个包含我的两个 ObservableCollection 的 TasksGroupPageViewModel.cs:
public ObservableCollection<TasksGroup> TasksGroups { get; set; } = new ObservableCollection<TasksGroup>();
public ObservableCollection<Tasks> Taches1 { get; set; } = new ObservableCollection<Tasks>();
我的 CollectionView 使用 TasksGroups 数据的绑定有效,但是我里面有一个可绑定的堆栈布局,但我无法将它绑定到他的 ObservableCollection 数据 (taches1)
从调试器中我可以看到它总是尝试从 Models.TasksGroup.cs 而不是 Models.Tasks.cs 访问数据,这就像因为我的 stacklayout 是 CollectionView 的子项,我无法绑定给它
我的问题是:我怎样才能直接绑定到 Taches1 ObservableCollection,它位于 TaskGroupPageViewModel 中,带有 BindableLayout.ItemsSource="" 或在 .xaml.cs 文件中,但我没有找到像我一样的方法用于出现方法中的 TasksGroup
我如何在 TaskGroupPage.xaml.cs 中初始化我的数据(data1 用于 TasksGroup,data2 用于 Tasks:
protected override async void OnAppearing()
{
base.OnAppearing();
var data2 = await App.Database.GetAllTasks();
var data1 = await App.Database.GetTaskGroupsAsync();
var vm = this.BindingContext as TasksGroupPageViewModel;
vm.TasksGroups = new ObservableCollection<TasksGroup>(data1);
TasksGroupCollection.ItemsSource = vm.TasksGroups;
vm.Taches1 = new ObservableCollection<Tasks>(data2);
}
我如何使用 x:Name=TasksGroupCollection 绑定到我的集合视图
<CollectionView Grid.Row="2" Margin="25" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"
SelectionMode="Single" x:Name="TasksGroupCollection" >
在此 CollectionView 中,我有一个可绑定的堆栈布局,我想将其绑定到 Taches1 数据
<StackLayout Grid.Column="2" Spacing="10" >
<Label Text="Tâches" TextColor="Black" FontSize="15" Margin="20,0"/>
<StackLayout BindableLayout.ItemsSource="{Binding }" HorizontalOptions="Start" VerticalOptions="Center" Margin="20,0,0,20" x:Name="Taches1">
<BindableLayout.ItemTemplate >
<DataTemplate>
<Label TextColor="#2F3246" FontSize="12">
<Label.FormattedText>
<FormattedString>
<FormattedString.Spans>
<Span Text="{Binding TaskDBA}"/>
<Span Text=" - "/>
<Span Text="{Binding TaskDescription}" FontAttributes="Bold"/>
</FormattedString.Spans>
</FormattedString>
</Label.FormattedText>
</Label>
</DataTemplate>
</BindableLayout.ItemTemplate >
</StackLayout>
</StackLayout>
【问题讨论】:
-
我的解决方案对您有用吗?如果是,请您接受(点击此答案左上角的☑️),以便我们可以帮助更多有相同问题的人:)。
标签: c# xamarin xamarin.forms