0

画面の 1 つから選択されたデバイスに基づいて、追加のウィザード ページを生成するウィザード コントロールがあります。追加のデバイスが設定されると、ウィザードはそれらのデバイス用の新しいウィザード ページの作成を追加します。

インスタンス化されたユーザー コントロール 'SDContentTemplate' があり、コンテンツ コントロールのコンテンツは、コンストラクターに渡されたオブジェクトによって設定されます。そのオブジェクトは、XML データソース (CDATA) から読み込まれる XAML です。

<Section Order="1" RepeatPerDevice="true" Title="Report Data">
  <![CDATA[<DockPanel xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' xmlns:tk="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit">
    <Border DockPanel.Dock="Top" BorderBrush="Black" BorderThickness="1" Width="170" HorizontalAlignment="Left">
        <StackPanel>
            <TextBlock Margin="0 0 0 16" TextAlignment="Center">Device X of Y</TextBlock>
            <WrapPanel>
                <TextBlock MinWidth="80" Padding="4 2">Manufacturer:</TextBlock>
                <TextBlock MinWidth="80" Padding="4 2" Text="{Binding Path=SDDevice.Manufacturer}"></TextBlock>
            </WrapPanel>
            <WrapPanel>
                <TextBlock MinWidth="80" Padding="4 2 4 6">Serial Number:</TextBlock>
                <TextBlock MinWidth="80" Padding="4 2 4 6" Text="{Binding Path=SerialNumber}"></TextBlock>
            </WrapPanel>
        </StackPanel>
    </Border>
</DockPanel>]]>
</Section>

SDContentTemplate コントロールには、この新しいユーザー コントロールを作成するコードによって設定されるパブリック オブジェクト Device があり、インスタンス化するときにそのオブジェクトを設定しています。

コンテンツ xaml がすべて読み込まれ、データ バインディングが機能していないことを除いて、すべてが正しく表示されます。テキストブロック内にデータが表示されていません。「ContentControl」のデータ コンテキストの設定と「SDContentTemplate」のデータ コンテキストの設定を試みましたが、テキスト ブロックにデータ値が入力されるようにデータ コンテキストを正しく設定する方法がわかりませんでした。 .

私が間違っていることについて何か提案はありますか?私は間違っていますか、これは不可能ですか?

ありがとう!

4

1 に答える 1

1

スヌープDataContextのようなものをダウンロードして、実行時の実際の内容を確認することをお勧めします

于 2011-09-01T16:25:50.783 に答える