0

私の WPF フォームは、複数のユーザー コントロールを使用しています。これらは独特の形を表しています。ナビゲーションのような機能を提供する必要があります。

ユーザーが UserControl A にある EDIT ボタンをクリックすると、UserControl B の DataContext をバインドし、このユーザー コントロールをマスター フォームで開きます。

このマスター フォームには、両方のユーザー コントロールが含まれています。どうやってやるの?

これは私のコードがどのように見えるかです

<Window>
        <TabControl  Background="Transparent">
            <TabItem Header="View Registration" Background="Transparent">
                <my:BulkPersonRegistration x:Name="BulkPersonRegistrationForm" />
            </TabItem>
            <TabItem Header="Add/Update Person" Background="Transparent">
                <my:PersonManager x:Name="PersonManagerForm" />
            </TabItem>
        </TabControl>
</Window>

BulkPersonRegistration ユーザー コントロールは、データ バインディングの関数を呼び出して、データグリッドを表示します。データグリッドのバインド時に、すべての行の後に編集ボタンが表示されます。ユーザーが編集ボタンをクリックすると、編集された行のオブジェクトによって PersonManager フォームがバインドされるようにします。問題は、BulkPersonRegistration フォームが PersonManagerForm を認識していないことです。したがって、BulkPersonRegistration の Parent フォーム、つまり Owner フォームを見つけてから、Personmanager フォームを見つけて、最終的にデータ コンテキストを設定する方法が必要です。これはすべて BulkRegistration フォームで行う必要があると思います。ユーザーコントロールではなく、ウィンドウでこれを行うことをお勧めします。

提案してください。

4

2 に答える 2

0

こんにちは、このようにElementNameを使用してバインドするだけでこれを実現できます

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <local:UserControl1 x:Name="uc1"/>
    <local:UserControl2 Grid.Row="1" DataContext="{Binding DataContext, ElementName=uc1}"/>
</Grid>

これが役立つことを願っています。

于 2013-07-27T17:35:25.883 に答える