首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ObjectDataProvider设置为视图的属性

将ObjectDataProvider设置为视图的属性
EN

Stack Overflow用户
提问于 2011-03-16 19:00:18
回答 2查看 406关注 0票数 0

我正在为我的WPF应用程序使用MVP模式。我想将ObjectDataProvider设置为我在视图的构造函数中设置的Presenter对象。然后,我想将我的控件绑定到展示者的属性。

我这样定义了我的ObjectDataProvider:

代码语言:javascript
复制
<Window.Resources>
    <ObjectDataProvider x:Key="pres" ObjectType="{x:Type local:MyPresenter}"/>
</Window.Resources>
<Grid DataContext="{Binding pres}" >
     <ComboBox Name="_fileTypes" SelectedValuePath="Key" DisplayMemberPath="Value" 
               ItemsSource="{Binding Path=FileType}"/>
</Grid>

代码语言:javascript
复制
public partial class MyView : Window
{
    public ViewPresenter MyPresenter { get; set; }
    public Dictionary<int, string> FileNames { get; private set; }

    public MyView()
    {
        InitializeComponent();
        this.ViewPresenter = new MyPresenter(this, (IService)ObjectFactory.GetInstance<IService>());
        this.FileType = GetFileTypes();
    }
}

不幸的是,ObjectDataProvider似乎没有正确设置,我的ComboBox是空的,当我检查this.Resources"pres“时,我得到:

代码语言:javascript
复制
{System.Windows.Data.ObjectDataProvider}
base {System.Windows.Data.DataSourceProvider}: {System.Windows.Data.ObjectDataProvider}
ConstructorParameters: Count = 0
IsAsynchronous: false
MethodName: null
MethodParameters: Count = 0
ObjectInstance: null
ObjectType: {Name = "MyPresenter" FullName = "Test.Presenters.MyPresenter"}

我应该如何正确定义我的ObjectDataProvider以使用我的视图的MyPresenter属性?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-17 18:54:33

我通常设置视图的数据上下文。

发布模型(){ this.DataContext =新模型();}

类模型{ public int SomeProperty{get;set;} }

这将允许您像这样绑定到模型上的属性;

票数 0
EN

Stack Overflow用户

发布于 2011-03-16 19:46:02

为了绑定到资源,您需要使用以下语法:

代码语言:javascript
复制
<Grid DataContext="{Binding {StaticResource Presenter}}" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5324329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档