Как переписать ту же XAML DataBinding в коде - PullRequest
0 голосов
/ 01 октября 2010

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

Вот пример привязки данных в XAML

    <GridViewColumn Width="140" Header="Name">
        <GridViewColumn.CellTemplate>
            <DataTemplate>
                <TextBox Text="{Binding Path=Label}" />
            </DataTemplate>
        </GridViewColumn.CellTemplate>
    </GridViewColumn>

Вот код, который у меня есть:

return new GridViewColumn()
        {
            Header = header,
            Width = width,
            DisplayMemberBinding = new System.Windows.Data.Binding(bindingProperty)
        };

Проблема в том, как я установил CellTemplate для DataTemplate через код?

1 Ответ

0 голосов
/ 01 октября 2010

Для тех, кто заинтересован, вот решение:

private GridViewColumn GetGridViewColumn(string header, double width, string bindingProperty, Type type)
    {
        GridViewColumn column = new GridViewColumn();
        column.Header = header;

        FrameworkElementFactory controlFactory = new FrameworkElementFactory(type);

        var itemsBinding = new System.Windows.Data.Binding(bindingProperty);
        controlFactory.SetBinding(TextBox.TextProperty, itemsBinding);

        DataTemplate template = new DataTemplate();
        template.VisualTree = controlFactory;

        column.CellTemplate = template;
        return column;
    }
...