【问题标题】:StackPanel has a DataContext, how to populate ListPicker with option values from another?StackPanel 有一个 DataContext,如何用另一个选项值填充 ListPicker?
【发布时间】:2011-08-25 06:30:51
【问题描述】:

我是 WP7 开发的新手,所以绑定对我来说还是有点陌生​​。我有一个 StackPanel,我使用 TwoWay 绑定设置了 DataContext 以编辑给定的记录。但是,在“表单”中,我有一个 ListPicker,我想用查找表中的可能值填充它。

目前我已经创建了一个 DataTemplate 并设置了 ListPicker 的 ItemsSource 属性。由于 DataTemplate 中唯一的 TextBlock 绑定到 ItemsSource 数据上下文,那么我如何将 ListPicker 的 SelectedItem 绑定到 StackPanel 的数据上下文?

【问题讨论】:

    标签: data-binding windows-phone-7 datacontext


    【解决方案1】:

    您分配给 StackPanel 的 DataContext 的对象必须公开适当的属性,例如:

    class MyData
    {
        public Data { get; set; }
        public Selected { get; set; }
    }
    

    那你需要绑定ListPicker的ItemsSource:ItemsSource={Binding Data}和ListPicker的SelectedItem:SelectedItem={Binding Selected}

    如果您希望 ListPicker 在您更改 MyData 的 Selected 属性时做出反应,您将需要 MyData 类来实现接口 IObservableData 属性也是如此,此集合必须在其状态更改时通知,因此将其设为:ObservableCollection<ElemType>

    【讨论】:

    • IObjservable 是通用的......他会传入什么类型?类 MyData : IObservable>{ }
    【解决方案2】:

    检查这个:Using the parent's DataContext (WPF - Dynamic Menu Command Binding)

    检查所有答案,看看其中一个是否对您有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-27
      • 1970-01-01
      • 2020-10-29
      • 2014-09-17
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多