メイン アプリケーションとユーザー コントロールの間で 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 の 2 つのインスタンスが作成されます。メイン アプリに 1 つ、ユーザー コントロールに 1 つ。
単一の共有インスタンスが作成されるようにプログラムを設定するにはどうすればよいですか?