Динамически загружать контент и устанавливать привязку - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть элемент управления мастера, который будет генерировать дополнительные страницы мастера на основе устройств, выбранных на одном из экранов. После настройки дополнительных устройств мастер добавит новые страницы мастера для этих устройств.

У меня есть пользовательский элемент управления 'SDContentTemplate', который создается, и содержимое элемента управления содержимым устанавливается объектом, переданным в конструктор. Этот объект является XAML, который загружается из источника данных XML (CDATA).

<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, но я не смог выяснить, как правильно установить текст данных, чтобы текстовые блоки заполнялись значениями данных .

Есть предложения, что я делаю не так? Я ошибаюсь, и это невозможно?

Спасибо!

1 Ответ

1 голос
/ 01 сентября 2011

Я бы предложил загрузить что-то вроде Snoop , чтобы увидеть, что на самом деле DataContext во время выполнения

...