【发布时间】:2019-09-09 19:10:34
【问题描述】:
与ItemsSource 列表的绑定正在工作。我可以说出来,因为列表包含四个项目,当我测试时,我的弹出菜单也有四个项目。问题是每个MenuFlyoutItem 都是空白的。在下面的代码中,SourceForCompaniesList 是 Company 类型的 ObservableCollection。 CompanyName 是 Company 的字符串属性。我已成功绑定到组合框中的此列表,但无法使其在弹出菜单中工作。谁能告诉我我做错了什么?
<FlyoutBase.AttachedFlyout>
<Flyout helpers:BindableFlyout.ItemsSource="{Binding ElementName=thePage, Path=DataContext.SourceForCompaniesList}" x:Name="theFlyout">
<helpers:BindableFlyout.ItemTemplate>
<DataTemplate>
<MenuFlyoutItem Text="{Binding ElementName=theFlyout,Path=DataContext.CompanyName}" />
</DataTemplate>
</helpers:BindableFlyout.ItemTemplate>
</Flyout>
</FlyoutBase.AttachedFlyout>
打开菜单截图:
【问题讨论】:
-
你确定
Binding Path是正确的吗?你能说明你正在使用什么上下文以及你是如何绑定它的吗? -
我确信顶层弹出绑定是正确的。但是 MenuFlyoutItem 绑定有问题。 CompanyName 绝对是 Company 的属性,它是 SourceForCompanies 列表中包含的项目类型。但是,我的路径一定有问题……我猜它没有与 SourceForCompanies 列表绑定,但我不知道为什么。
-
我正在尝试使用包含数据模板的浮出控件的上下文。这显然行不通。 SourceForCompaniesList 是 viewmodel 中的一个 Observable 集合。谢谢。
标签: c# xaml uwp mvvm-light