Raul Mateia da Silva Ответов: 1

Windows presentation foundation с MVVM


Привет, люди; я новичок в разработке, и я тренируюсь в создании небольшого программного обеспечения.
моя идея состоит в том, чтобы иметь возможность взять дату из datagrid, модели и передать ее в свойство ViewModel. но я не знаю, с чего начать, может ли кто-нибудь мне помочь?

Что я уже пробовал:

в виду:

<DataGrid Padding ="5" VerticalScrollBarVisibility="Visible"

                      HorizontalScrollBarVisibility="Visible" FontSize="14"

                      Name="dgLista" IsReadOnly="True" ItemsSource="{Binding Path=Consultas}" SelectionMode="Single">
                    <DataGrid.Columns>
                        <DataGridTemplateColumn Header="Detalhe">
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <Button Name="btnDetalhe" Content="Detalhe" CommandParameter="{Binding}"

                                        Command="{Binding Path= DetalheCommand , Mode=TwoWay}" Click="btnDetalhe_Click"/>
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>
                    </DataGrid.Columns>
                    
                </DataGrid>


в модель представления:

private DateTime dataProcura;

        public DateTime DataProcura {
            get { return dataProcura; }
            set { SetField(ref dataProcura, value); }
        }

       public CommandBase DetalheCommand { get; set;  }

 public AutomovelViewModel()
        {
            
            DataInicial = DateTime.UtcNow; 
            dataFinal = DateTime.Now;
            
            try
            {
      
                DetalheCommand = new CommandBase(ControleDetalhe); 

            }catch(Exception e)
            {
                System.Windows.MessageBox.Show("Ocorreu um erro: " + e.Message);
            }

        private void ControleDetalhe()
        {
            
            //Pegar a data na linha selecionada e passar para dentro de uma variavel. 
            //int Index = dgLista.CurrentCell.RowIndex;


            dao = new AutomovelBuscaDao();
            dao.ControleDetalhes(DataProcura); 
        }

1 Ответов

Рейтинг:
12

RickZeeland

С помощью ObservableCollection рекомендуется, см. пример здесь: c# - привязка Datagrid в WPF - переполнение стека[^]