问题标签 [objectdataprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2642 浏览

wpf - wpf xaml 在当前对象上调用方法

我试图绑定到方法的输出。现在我已经看到了这样的例子,ObjectDataProvider但是这个问题是 ObjectDataProvider 创建了一个新的对象实例来调用该方法。我需要在当前对象实例上调用的方法。我目前正在尝试让转换器工作。

设置:

我对 XAML 的尝试

我的代码在后面

我的问题是我似乎无法将当前实体传递给转换器。所以当我尝试使用反射来获取 getProperty 方法时,我没有什么可操作的

谢谢,斯蒂芬

0 投票
3 回答
5246 浏览

wpf - WPF 枚举值作为 ObjectDataProvider 的方法参数

我想将 MyEnum 的具体值作为 GetValues 方法的参数从 MyItemSourceProvider 传递。请问怎么写?

方法:

0 投票
3 回答
17516 浏览

wpf - 在 XAML 中实例化和重用对象的实例

我想在 XAML 中实例化对象,并重用这些实例。我认为这应该很简单,但我被卡住了,我可能遗漏了一些明显的东西。

假设我想将猫添加到不同的房间(房间有一个包含猫类型对象的 ObservableCollection)。在 UserControl.Resources 我创建 ObjectDataProviders:

在我的用户控件中,我想将猫添加到房间:

将 Cat 实例添加到 ObservableCollection Room.Cats 的语法是什么?例如,我想将 Cat1 和 Cat2 添加到 Room1,将 Cat2 和 Cat3 添加到 Room2。我完全走错了吗?

0 投票
1 回答
784 浏览

wpf - 将列表框项索引作为参数传递给 objectdataprovider

我目前正在尝试使用对象数据提供程序来返回我想用作每个列表框项目背景的颜色,颜色取决于该列表框项目索引。

基本上传递给对象的参数是原始颜色和 listboxitem 索引,它将根据它的索引返回更浅的颜色......这是我目前为对象数据提供者提供的代码:

我知道您不能进行直接绑定,因为它不是依赖对象并且不符合绑定规则,并且您必须直接设置它......但是,我不确定我的列表框项目 xaml 的位置我应该绑定回来。

此外,在长时间搜索此问题的答案后,我只发现人们仅根据诸如某人使用此方法输入文本框的内容更改参数的示例:-

我希望它绑定到列表框索引,所以不确定将其放入哪个属性。

第二个问题:列表框项确实有一个标签,其内容绑定到列表框项索引,但是,当我总是想将其绑定到索引时,如何使用上述绑定源技术来绑定内容?

提前感谢您的帮助!=)

0 投票
1 回答
6019 浏览

wpf - WPF 数据绑定:CollectionViewSource 和 ObjectDataProvider 问题

我有一个 MainWindow.xaml 文件:

及其代码隐藏类,我在其中定义了详细范围的过滤器:

接下来是AccountDetail类:

最后,一个枚举:

当我运行我的代码时,我得到一个列表框,其中填充了一堆帐户详细信息,每个都有自己的组合框,其中包含选定的范围和一个具有适当值的文本框。问题是组合框中的所有选定值都与为最后输入的详细信息设置的范围相匹配,并且更改任何组合框值都会更新所有这些值,就好像它们都绑定到相同的帐户详细信息一样。

当我ObjectDataProviderCollectionViewSourceDetailScopes 中取出并将其直接绑定到 AccountDetail 中的组合框ItemsSourceDataTemplate,问题就消失了。但是,我确实需要它,CollectionViewSource因为我正在对其应用一些过滤,而我无法将过滤应用于ObjectDataProvider.

有人可以解释为什么会发生这种情况以及我实际上应该如何连接CollectionViewSourceObjectDataProvider?谢谢你。

0 投票
2 回答
1998 浏览

c# - 在代码隐藏中的方法中使用其 x:Name 作为参数绑定按钮 IsEnabled/Visibility 属性

我需要将控件名称传递给安全对象中的一个方法,该方法返回 IsEnabled 属性的布尔值和另一个返回其可见性(折叠、隐藏或可见)的方法。出于许可目的,必须检查这两者。

我尝试使用 ObjectDataProvider,但所有示例仅显示来自文本框的用户输入参数。我特别需要根据按钮的 x:Name 属性将控件名称传递给方法。

处理这个问题的最简单和最有效的方法是什么。提前致谢。

更新: 我正在尝试使用转换器,这是我想出的转换方法:

以下是xaml:

0 投票
1 回答
1228 浏览

wpf - TreeView、ObjectDataProvider、HierarchicalDataTemplate、xsd2Code 未显示任何内容

我有一个用 xsd2code 创建的对象层次结构。对象层次结构由 Project 类型的根对象组成,其中包含名为文件夹的 ObservableCollection 文件夹,这是一个递归对象,包含名为文件夹的文件夹的 ObservableCollection 和名为文件的文件我想通过 ObjectDataProvider 将此对象层次结构绑定到 TreeView 并控制通过 HierarchicalDataTemplate 定义显示

ObjectDataProvider 和 DataTemplates 在 App.xaml 中合并的资源中定义,如下所示

TreeView 是这样定义的

全局处理是:我从 Xml 文件(xsd2code 功能)加载对象层次结构。正如我在调试中看到的那样,我的对象层次结构是干净的。然后,我在这样的代码中将对象层次结构绑定到 ObjectDataProvider

好吧,TreeView 中什么也没有出现。我错过了什么?

0 投票
2 回答
406 浏览

c# - 将 ObjectDataProvider 设置为视图的属性

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

我已经像这样定义了我的 ObjectDataProvider:

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

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

0 投票
1 回答
9028 浏览

wpf - wpf ObjectDataProvider 方法参数绑定到组合框选定值

我正在处理 WPF 绑定中的问题。我正在创建一个用户控件,它呈现一个数据网格,由 2 个可能的值过滤。第一个值由文本框设置,第二个值由组合框设置。我正在使用 ObjectDataProvider 来映射具有 2 个参数的方法,并且文本框和组合框应该设置这 2 个参数。这是代码。

它出什么问题了?如果我只绑定文本框属性,一切正常,但尝试将 Combobox.SeletedValue 属性绑定到第一个方法参数会引发异常(由 wpf 引擎静默处理):

System.Windows.Data Error: 35 : ObjectDataProvider: Failure trying to invoke method on type; Method='GetCorse'; Type='HorseDataProvider'; Error='No method was found with matching parameter signature.' MissingMethodException:'System.MissingMethodException: Method 'VisualHorse.HorseDataProvider.GetCorse' not found. at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) at System.Windows.Data.ObjectDataProvider.InvokeMethodOnInstance(Exception& e)'

Any help would be appreciated

0 投票
2 回答
2632 浏览

wpf - WPF 绑定到代理

我有许多实现自己的自定义更新通知的集合类。INotifyCollectionChanged将这些通知转换为代理类中的实现应该很容易。

INotifyPropertyChanged已经照顾好;这个问题只是关于收集代理。

因此,我正在寻找一种从 XAML 创建相对容易使用的代理的方法。对于子集合尤其如此。自定义集合类是无法修改(也无法派生)的库的一部分。也不可能用INotifyCollectionChanged兼容的等价物替换集合类型,因为数据更新代码不在我的控制范围内。

我更喜欢与 SL 一起使用的解决方案,但这不是严格的要求。

到目前为止,我认为以下方法是可行的:

  • 为添加属性TypeDescriptionProvider的集合类定义一个注册。Proxy这允许绑定路径点入代理。从 XAML 的角度来看,这个解决方案似乎是最简单的,但与 SL 不兼容。
  • 定义一个创建代理的值转换器。这将与 XAML 方面的更多工作一起工作。它应该适用于 SL。但是,如果路径上需要多次值转换,则可能需要“中间”视觉元素来保存值转换器结果。

我调查了ObjectDataProvider,但我认为它不能在这种情况下使用(代理创建方法必须对容器中的对象类型是通用的)。

关于这两种方法中哪一种更好或任何其他方法的任何建议?