2

UC という名前の 3 つの UserControls があります。レイアウト内で使用する DataGrid がそれぞれに異なる DynamicResource を必要とすることを除いて、それらはすべて同じです。基本的 :

<DataGrid ...
 ItemsSource="{DynamicResource Model1}"> <!-- I want to pass in this "Model1" string? -->

...
</DataGrid>

<DataGrid ...
 ItemsSource="{DynamicResource Model2}">

...
</DataGrid>

<DataGrid ...
 ItemsSource="{DynamicResource Model3}">

...
</DataGrid>

すべてのユーザー コントロールは Window 内で作成されます。

<Window ...>

<my:UC/>
<my:UC/>
<my:UC/>

</Window>

現在、私の 3 つの UC はデータグリッドに同じデータを表示しているため、動的リソースは 3 つすべてで同じです。各ユーザーコントロールに値を渡して動的リソースを変更するにはどうすればよいですか? または、これをどのように処理する必要がありますか?私は1日前にWPFを始めました。

ありがとう

4

1 に答える 1

1

値を保持する依存関係プロパティをユーザー コントロールに作成しItemsSourceます ( DependencyProperty.Register )。DataGridコントロールで、このプロパティにバインドします。次に、動的リソースからウィンドウでこのプロパティを設定します。

<Window ...>
    <my:UC DataGridItemsSource="{DynamicResource Model1}" />
    <my:UC DataGridItemsSource="{DynamicResource Model2}" />
    <my:UC DataGridItemsSource="{DynamicResource Model3}" />
</Window>

DataGrid.ItemsSourceコントロールにバインドするには、 binding withElementName=parentNameまたは binding withのいずれかを使用できますRelativeSource=FindAncestor

于 2013-03-21T16:04:42.303 に答える