在DataGrid中實現Button Command綁定

在DataGrid中實現Button Command綁定


Command="{Binding editCommand}" 會默認查找UserList中對象的屬性,而你的UserList中對象應該不包括editCommand屬性;
可以嘗試:
Command="{Binding DataContext.editCommand,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Windows}}}"

 

<DataGrid ItemsSource="{Binding UserList}" Name="PregnantDataGrid" 
          IsReadOnly="True" 
          AutoGenerateColumns="False" HeadersVisibility="All" >
    <DataGrid.Columns> 
        <DataGridTextColumn Width="150" Header="姓名"  Binding="{Binding realName}" />
        <DataGridTextColumn Width="100" Header="手機號" Binding="{Binding phoneNo}" /> 
        <DataGridTemplateColumn Width="60" CanUserResize="False" Header="操作">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <DockPanel HorizontalAlignment="Left" Margin="5,0,0,0">
                        <Button Content="編輯" Margin="5" Width="80" 
                        Command="{Binding DataContext.editCommand,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}}" CommandParameter="{Binding}" />
                    </DockPanel>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

 

public class VmUser : ViewModelBase
{
    public VmUser()
    {
    EditCommand = new RelayCommand(EditCommandMethod, CanEditExecute);
    }


    public RelayCommand EditCommandMethod { get; set; }

    private void EditCommandMethod(object param)
    {
        var obj = param as UserInfo;
        MessageBox.Alert(obj.UserName);
    }

    private bool CanEditExecute(object obj)
    {
        return true;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章