Pessoal preciso obetr o valor de um checkbox que não esta no objeto, apenas no Datagrid, ai preciso que salve apenas os valor das linhas onde o checkbox está checado.
Porém para rsolver isso cheguei a 2 soluções porém cada uma esta com problemas.
1º - Obter o número da linha do datagrid dentro do foreach.
ou
2º - Obter o valor do elemento checkbox da linha.
estou usando a seguinte solução.
private void btnSave_Click(object sender, RoutedEventArgs e)
{
foreach (Colporteur item in (List<Colporteur>)colporteurDataGrid.ItemsSource)
{
colporteurDataGrid.ItemContainerGenerator.ContainerFromItem(o);
int tl = colporteurDataGrid.Items.Count;
int pos = colporteurDataGrid.Items.CurrentPosition;
var tt = colporteurDataGrid.CurrentCell.Item.ToString();
CurrentAccount objC = new CurrentAccount();
gridDebit.DataContext = new CurrentAccount() { CampaignID = Login.SelectedCampaign.CampaignID, PeriodID = Login.OpenPeriod.PeriodID, ColporteurID = item.ColporteurID, Debit = decimal.Parse(debitTextBox.Text), Description = descriptionTextBox.Text };
var l = pos;
var vl = colporteurDataGrid.ItemContainerGenerator.ContainerFromIndex(l);
DataGridRow ObjRow = (DataGridRow)vl;
FrameworkElement objElement = colporteurDataGrid.Columns[0].GetCellContent(ObjRow);
objElement.GetType().ToString().EndsWith("CheckBox");
CheckBox objChk = (CheckBox)objElement;
if (objChk.IsChecked == true)
{
item.ColporteurID = ((CurrentAccount)gridDebit.DataContext).ColporteurID;
objC.ColporteurID = ((CurrentAccount)gridDebit.DataContext).ColporteurID;
objC.CampaignID = ((CurrentAccount)gridDebit.DataContext).CampaignID;
objC.PeriodID = ((CurrentAccount)gridDebit.DataContext).PeriodID;
objC.Description = ((CurrentAccount)gridDebit.DataContext).Description;
objC.Debit = ((CurrentAccount)gridDebit.DataContext).Debit;
objC.Credit = 0;
objC.Add(cx);
}
}
LodGridDebitt();
debitTextBox.Text = "";
descriptionTextBox.Text = "";
if (ckCheckAll.IsChecked == true)
ckCheckAll.IsChecked = false;
}