gpt4 book ai didi

windows-phone-7 - WP7 PanoramaItem 绑定(bind)第二个 PanoramaItem

转载 作者:行者123 更新时间:2023-12-03 10:39:19 24 4
gpt4 key购买 nike

我正在使用 Panorama WP7 项目,我无法将我的 View 模型绑定(bind)到我的 View 。由于我的 View 是全景图,我想为第一个 PanoramaItem 设置一个 View 模型,为第二个 PanoramaItem 设置第二个 View 模型。

如果我将 x:Name 属性赋予 PanoramaItems,我可以让它工作,但我尽量不这样做,因为 MVVM 不鼓励使用 x:Name 属性。我尝试过的替代方案没有奏效。将整个全景图的 DataContext 设置为一个 View 模型很容易,但是我没有第二个全景图所需的数据。如果我尝试将 DataContext 分配给该项目 Loaded 事件处理程序中的每个 PanoramaItem,我可以通过 Loaded 事件处理程序中的 sender 参数获取对 PanoramaItem 的引用,但编译器会为第二个 Loaded 事件处理程序引发错误 - 显然你无法将 Loaded 事件分配给一个全景图中的两个全景项目。就此而言,我无法将任何事件分配给第二个 PanoramaItem。

任何人都可以帮忙吗?

谢谢,
安迪

最佳答案

好的,我想通了。可以使用 Panorama 的 Loaded 事件中的 sender 对象将 DataContext 分配给 Panorama 中的 PanoramaItems,如下所示:

private void HomeViewPanorama_Loaded(object sender, RoutedEventArgs e)
{
App.VM1 = new ViewModel1();
App.VM2 = new ViewModel2();

if (!App.VM1.IsDataLoaded)
{
App.VM1.LoadData();
}

if (!App.VM2.IsDataLoaded)
{
App.VM2.LoadData();
}

Panorama panorama = sender as Panorama;
PanoramaItem Item1 = panorama.Items[0] as PanoramaItem;
Item1.DataContext = App.VM1;

PanoramaItem Item2= panorama.Items[1] as PanoramaItem;
Item2.DataContext = App.VM2;
}

在此示例中,您必须知道您的 PanoramaItems 将是什么,它们不是动态的,但此方法可让您避免在 XAML 中对控件进行 x:Name 命名。

关于windows-phone-7 - WP7 PanoramaItem 绑定(bind)第二个 PanoramaItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10923676/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com