the gridview's row alway diaplay null?? why
public partial class MainPage : UserControl
{
ObservableCollection<dynamic> obList = null;
string sb = "";
public MainPage()
{
InitializeComponent();
WCFTestClient wcf = new WCFTestClient();
wcf.GetDataAsync();
wcf.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(wcf_GetDataCompleted);
}
void wcf_GetDataCompleted(object sender, GetDataCompletedEventArgs e)
{
obList = DataTableHelp.getListByDataTableStr(e.Result);
gridMain.ItemsSource = obList;
for (int i = 0; i < gridMain.Columns.Count; i++)
{
System.Windows.Controls.ComboBoxItem comboItem = new ComboBoxItem();
comboItem.Content = gridMain.Columns[i].UniqueName;
col1.Items.Add(comboItem);
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
DataTable dt = new DataTable();
foreach (var column in gridMain.Columns)
{
GridViewDataColumn dataColumn = column as GridViewDataColumn;
DataColumn dc = new DataColumn();
if (dataColumn != null)
{
dc.ColumnName = dataColumn.UniqueName;
dc.DataType = dataColumn.DataType;
dt.Columns.Add(dc);
}
}
dt.Columns.Add(new DataColumn() { ColumnName = "RS", DataType = typeof(double) });
foreach (var item in this.gridMain.Items)
{
string s = txt_rs.Text;
GridViewRow row = this.gridMain.ItemContainerGenerator.ContainerFromItem(item) as GridViewRow;
DataRow pr = new DataRow();
if (row != null)
{
foreach (GridViewCell cell in row.Cells)
{
if (cell.Column.UniqueName != "RS")
{
pr[cell.Column.UniqueName] = cell.Value;
string t = "";
if (cell.Value.ToString() == "" || cell.Value == null)
{
t = "(0)";
}
else
{
t = cell.Value.ToString().Trim();
if (t.First().ToString().Trim() == "-")
{
t = "(0" + t + ")";
}
}
s = Replace(s, cell.Column.UniqueName, t);
}
}
pr["RS"] = this.cal(s);
dt.Rows.Add(pr);
}
}
gridMain.ItemsSource = dt.ToList();
}
the dt.rows.count is not same the gridMain.Items.count
pls help me ,thanks a lot