我正在为我的WPF应用程序使用MVP模式。我想将ObjectDataProvider设置为我在视图的构造函数中设置的Presenter对象。然后,我想将我的控件绑定到展示者的属性。
我这样定义了我的ObjectDataProvider:
<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>和
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“时,我得到:
{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属性?
发布于 2011-03-17 18:54:33
我通常设置视图的数据上下文。
发布模型(){ this.DataContext =新模型();}
类模型{ public int SomeProperty{get;set;} }
这将允许您像这样绑定到模型上的属性;
发布于 2011-03-16 19:46:02
为了绑定到资源,您需要使用以下语法:
<Grid DataContext="{Binding {StaticResource Presenter}}" />https://stackoverflow.com/questions/5324329
复制相似问题