Использование EventToCommand в компоненте внутри сетки данных - PullRequest
0 голосов
/ 01 февраля 2011

У меня проблема с использованием MVVM Lite EventToCommand в компоненте флажка внутри сетки данных.EventToCommand не работает, действие никогда не запускается.

Не только для компонента-флажка, я пытался использовать EventToComment для другого компонента в сетке данных.И это тоже не работает.

Возможно ли использовать EventToCommand для компонента внутри сетки данных?если это возможно, то как это реализовать?

вот код ..

xaml:

<sdk:DataGrid Name="dgSubmitProposal" 
                      ItemsSource="{Binding Path=PeopleVM}" 
                      SelectedItem="{Binding SelectedRateChange, Mode=TwoWay}"
                      FrozenColumnCount="{Binding FrozenColumnCount}"
                      TabNavigation="Cycle"
                      AutoGenerateColumns="False" 
                      HorizontalAlignment="Stretch" 
                      VerticalAlignment="Stretch"
                      VirtualizingStackPanel.VirtualizationMode="Standard"
                      ClipboardCopyMode="None">
            <sdk:DataGrid.Columns>
                <sdk:DataGridTemplateColumn Header="Select">
                    <sdk:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox Name="chbSelect" IsChecked="{Binding IsChecked, Mode=TwoWay}">
                                <i:Interaction.Triggers>
                                    <i:EventTrigger EventName="Click">
                                        <cmd:EventToCommand Command="{Binding RowCheckCommand}"/>
                                    </i:EventTrigger>
                                </i:Interaction.Triggers>
                            </CheckBox>
                        </DataTemplate>
                    </sdk:DataGridTemplateColumn.CellTemplate>
                </sdk:DataGridTemplateColumn>
                <sdk:DataGridTextColumn Header="Name" Binding="{Binding Name, Mode=TwoWay}" IsReadOnly="True" />
                <sdk:DataGridTextColumn Header="Age" Binding="{Binding Age, Mode=TwoWay}" IsReadOnly="True"/>
            </sdk:DataGrid.Columns>
        </sdk:DataGrid>

Просмотр модели класса:

public RelayCommand RowCheckCommand
{
    get;
    private set;
}
public MainViewModel()
{
    RowCheckCommand = new RelayCommand(() => MessageBox.Show("A checkbox in a datagrid Clicked!"));
}

1 Ответ

0 голосов
/ 01 февраля 2011
public MainViewModel()
{
    RelayCommand = new RelayCommand(() => MessageBox.Show("A checkbox in a datagrid Clicked!"));
}

в этом коде есть ошибка.Вы создаете RelayCommand для свойства: RelayCommand .Вы должны сделать это для RowCheckCommand property

...