WPF Newbie - Как мне сохранить весь объект Binding в строке DataGrid? - PullRequest
2 голосов
/ 18 июля 2011

Я новичок в WPF, поэтому на этот вопрос может быть простой ответ, но для меня это не очевидно.

Сетка, очевидно, представляет собой коллекцию моих объектов Сконфигурированного порта.Я хочу сохранить объект Сконфигурированный порт (который является Связыванием для каждой строки), чтобы передать его следующему элементу управления UserControl в цепочке MVVM при нажатии на ячейку сетки.

Я нашел этоТАК вопрос , но закомментированный раздел - это именно то, чего мне не хватает.

Заранее спасибо, я уверен, что есть простое решение.

Ответы [ 2 ]

2 голосов
/ 18 июля 2011

Я бы использовал это (все, кроме самого внутреннего xaml, было взято из другого SO сообщения, на которое вы ссылались:

<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False" >
   <DataGrid.Columns>
        <DataGridTemplateColumn Header="Custom Column">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Button Tag="{Binding}" Content="Click Me" Click="Button_ClickHandler"/>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridtemplateColumn>
    </DataGrid.Columns>
</DataGrid>

Затем источник для обработчика щелчков:

private void Button_ClickHandler(object sender, EventArgs e)
{
    var clickedConfiguredPort = ((FrameworkElement)sender).Tag as ConfiguredPort;
    DoStuff(clickedConfiguredPort);
}
1 голос
/ 18 июля 2011

Ознакомьтесь с этой статьей:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/1b694f75-7621-4c88-8055-6c31c601c87f/

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...