【问题标题】:How to bind to viewmodel property in DataTemplate WP7如何绑定到 DataTemplate WP7 中的 viewmodel 属性
【发布时间】:2011-05-19 14:17:46
【问题描述】:

我无法绑定到 DataTemplate 中的 viewmodel 属性。我想在 ListBox 中显示/隐藏全局复选框。

<DataTemplate x:Key="template">

<CheckBox Visibility="{Binding IsVisible, Converter={StaticResource BooleanToVisibilityConverter}}" Background="Gray" cal:Message.Attach="[Action Check( $dataContext )]" />

【问题讨论】:

  • 您需要向我们展示您拥有的东西,以及不工作的东西。这个问题目前太笼统了。

标签: silverlight xaml windows-phone-7


【解决方案1】:

我之前也遇到过类似的问题。我创建了 ViewModelLocator 类,它具有我的视图模型的公共属性。这些属性是通过 IoC 容器检索的:

public partial class ViewModelLocator
{
    public MainPageViewModel MainPageViewModel
    {
        get { return this.containerLocator.Container.Resolve<MainPageViewModel>(); }
    }
}

然后你需要在你的 App.xaml 中创建静态资源:

    <Application.Resources>  

         <viewmodels:ViewModelLocator x:Key="ViewModelLocator"/>

    </Application.Resources>

最后你可以在 DataTemplate 中使用它:

<DataTemplate x:Key="template">
   <CheckBox Visibility="{Binding MainPageViewModel.IsVisible, Source={StaticResource ViewModelLocator}}"/>
</DataTemplate>

【讨论】:

  • 我们可以在用户控件或页面控件上设置名称(它包含 ViewModel 数据上下文)并使用它类似于您上面提供的示例。
  • 我试过了,但我的对象没有containerLocator 属性,是否缺少一些定义这个的代码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 2010-11-04
  • 2016-01-11
  • 1970-01-01
  • 1970-01-01
  • 2012-04-21
  • 2018-09-30
相关资源
最近更新 更多