我试图在我的主应用程序和用户控件之间共享一个ObjectDataProvider资源。我在一个单独的资源字典文件中定义了odp,该文件包含在应用程序和用户控件中。
<ObjectDataProvider x:Key="AsymmetricFrameHolder"
ObjectType="{x:Type data:DataFrameAsymmetric}"/> 然后,我尝试在主应用程序中访问这个程序,如下所示:
ObjectDataProvider odp = (ObjectDataProvider)Resources["AsymmetricFrameHolder"];
return (DataFrameAsymmetric)odp.ObjectInstance;并将其绑定到用户控件中:
<Grid Name="grid" Height="Auto" Width="Auto"
DataContext="{StaticResource AsymmetricFrameHolder}">然后:
<TextBox Name="TextBox_Length" Grid.Row="0" Grid.Column="1"
Text="{Binding Path=Length }"/>这将创建两个DataFrameAsymmetric实例。一个在主应用程序中,一个在用户控件中。
如何设置程序以便创建单个共享实例?
发布于 2008-11-26 16:45:13
如果你能走另一条路,这个问题就能很容易地解决。将类DataFrameAsymmetric转换为单例类,并在任何想要使用它的实例的地方使用
<Grid Name="grid" Height="Auto" Width="Auto" DataContext="{Binding Source={x:Static data:DataFrameAsymmetric.Instance}}">在代码的任何部分,您将能够通过
DataFrameAsymmetric.Instancehttps://stackoverflow.com/questions/321048
复制相似问题