首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WPF中共享ObjectDataProvider

在WPF中共享ObjectDataProvider
EN

Stack Overflow用户
提问于 2008-11-26 15:14:13
回答 1查看 2.1K关注 0票数 4

我试图在我的主应用程序和用户控件之间共享一个ObjectDataProvider资源。我在一个单独的资源字典文件中定义了odp,该文件包含在应用程序和用户控件中。

代码语言:javascript
复制
<ObjectDataProvider x:Key="AsymmetricFrameHolder" 
    ObjectType="{x:Type data:DataFrameAsymmetric}"/>  

然后,我尝试在主应用程序中访问这个程序,如下所示:

代码语言:javascript
复制
ObjectDataProvider odp = (ObjectDataProvider)Resources["AsymmetricFrameHolder"];
return (DataFrameAsymmetric)odp.ObjectInstance;

并将其绑定到用户控件中:

代码语言:javascript
复制
<Grid Name="grid"  Height="Auto" Width="Auto" 
   DataContext="{StaticResource AsymmetricFrameHolder}">

然后:

代码语言:javascript
复制
<TextBox  Name="TextBox_Length"  Grid.Row="0" Grid.Column="1" 
    Text="{Binding Path=Length }"/>

这将创建两个DataFrameAsymmetric实例。一个在主应用程序中,一个在用户控件中。

如何设置程序以便创建单个共享实例?

EN

回答 1

Stack Overflow用户

发布于 2008-11-26 16:45:13

如果你能走另一条路,这个问题就能很容易地解决。将类DataFrameAsymmetric转换为单例类,并在任何想要使用它的实例的地方使用

代码语言:javascript
复制
<Grid Name="grid"  Height="Auto" Width="Auto" DataContext="{Binding Source={x:Static data:DataFrameAsymmetric.Instance}}">

在代码的任何部分,您将能够通过

代码语言:javascript
复制
DataFrameAsymmetric.Instance
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/321048

复制
相关文章

相似问题

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