Как связать DataGrid.SelectedItem в DataTemplate - PullRequest
0 голосов
/ 19 апреля 2011

Надеюсь, это не дурак. Я использую Silverlight 4.

У меня есть коллекция MyProjects из моей ViewModel MyVM привязки к сетке данных MainDataGrid .

У меня также есть шаблон RowDetailsTemplate для отображения нескольких кнопок.

У меня есть привязка команд к этим кнопкам. Привязка команды Command = "{Binding Path = EditCommand}" работает, но я просто не могу заставить работать привязку CommandParameter. Работает ли имя элемента внутри DataTemplate? Каков наилучший способ передачи в SelectedItem / SelectedDataRow через привязку CommandParameter внутри DataTemplate?

Спасибо за вашу помощь.

        <sdk:DataGrid x:Name="MainDataGrid" AutoGenerateColumns="False" DataContext="{StaticResource MyVM}" ItemsSource="{Binding MyProjects}" RowDetailsVisibilityMode="VisibleWhenSelected">

            <sdk:DataGrid.RowDetailsTemplate>
                <DataTemplate>
                    <StackPanel Background="Ivory" Orientation="Horizontal">
                        <Button Style="{StaticResource DataGridRowDetailsButtonStyle}"
                                Command="{Binding Path=EditCommand}" 
                                CommandParameter="{Binding ElementName=MainDataGrid, Path=SelectedItem}">Edit</Button>

1 Ответ

1 голос
/ 19 апреля 2011

Как насчет добавления свойства 'MySelectedItem' в модель представления (где вы определяете свою команду EditCommand) и связывания его с selectedItem вашей таблицы данных.

<sdk:DataGrid x:Name="MyDataGrid" SelectedItem="{Binding MySelectedItem, Mode=TwoWay}" SelectedItem="{Binding MySelectedItem}">

тогда вы, вероятно, можете сделать

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