WPF - создание объекта пользовательского интерфейса из шаблона данных - PullRequest
4 голосов
/ 02 февраля 2010

Это очень похоже на этот вопрос Я задавал ранее. Я надеюсь прояснить ситуацию и получить другой ответ.

У меня есть объект данных (называемый MockUI). У него есть шаблон данных (в app.xaml), например:

<DataTemplate DataType="{x:Type local:MockWI}">
    <Button Content="{Binding Name}"/>
</DataTemplate>

В моем коде я хочу создать объект пользовательского интерфейса, который является шаблоном данных. Итак, у меня есть myMockWI, и я хочу выяснить, какой шаблон будет использоваться, и получить объект, который он создает (в данном случае это кнопка с содержимым, для которого установлено myMockWI).

Я пытался просто сделать кнопку:

Button myButton = new Button {Content = myMockWI}

но, как вы, вероятно, можете догадаться, это создает кнопку, а затем помещает другую кнопку внутри этой кнопки (поскольку применяется шаблон данных). Как я могу получить только одну кнопку?

1 Ответ

3 голосов
/ 02 февраля 2010

Оказывается, мне просто нужно немного подняться по дереву пользовательского интерфейса.

Если я создаю новый ContentControl, он не смотрит на него и принимает тот, который является таблицей данных.

Таким образом, мой код изменяется сверху на этот:

ContentControl myControl = new ContentControl {Content = myMockWI};
...