【发布时间】:2014-01-14 23:40:52
【问题描述】:
我从此代码中获得了单元格值和单元格标题值。如何在 wpf datagrid 中获取所选单元格的行标题值?
XAML-
<DataGrid Name="Grid1" Height="550" Width="850" AutoGenerateColumns="True"
CanUserResizeRows="False" CanUserDeleteRows="False"
CanUserAddRows="False" AreRowDetailsFrozen="False"
SelectionUnit="Cell" SelectedCellsChanged="Grid1_SelectedCellsChanged"
CellEditEnding="Grid1_CellEditEnding" LoadingRow="Grid1_LoadingRow">
<DataGrid.Style>
<Style TargetType="DataGrid">
<Setter Property="AlternatingRowBackground" Value="LightYellow"/>
</Style>
</DataGrid.Style>
</DataGrid>
代码 -
我如何操作列标题是 -
private DataTable _GameData;
public Grid()
{
_GameData = new DataTable();
_GameData.Columns.Add(new DataColumn("Sunday", typeof(string)));
_GameData.Columns.Add(new DataColumn("Monday", typeof(string)));
_GameData.Columns.Add(new DataColumn("Tuesday", typeof(string)));
_GameData.Columns.Add(new DataColumn("Wednesday", typeof(string)));
_GameData.Columns.Add(new DataColumn("Thursday", typeof(string)));
_GameData.Columns.Add(new DataColumn("Friday", typeof(string)));
_GameData.Columns.Add(new DataColumn("Saturday", typeof(string)));
for(int i=0;i<=23;i++)
{
var row = _GameData.NewRow();
_GameData.Rows.Add(row);
row["Sunday"] = "";
row["Monday"] = "";
row["Tuesday"] = "";
row["Wednesday"] = "";
row["Thursday"] = "";
row["Friday"] = "";
row["Saturday"] = "";
}
InitializeComponent();
Grid1.ItemsSource = _GameData.AsDataView();
Grid1.RowHeaderWidth = 50;
Grid1.ColumnWidth = 100;
}
public DataTable GameData
{ get { return _GameData; } }
我如何操作行标题-
private void Grid1_LoadingRow(object sender, DataGridRowEventArgs e)
{
var id = e.Row.GetIndex();
switch (id)
{
case 0:
{
e.Row.Header = "12-00";
break;
}
case 1:
{
e.Row.Header = "12-30";
break;
}
case 2:
{
e.Row.Header = "1-00";
break;
}
case 3:
{
e.Row.Header = "1-30";
break;
}
case 4:
{
e.Row.Header = "2-00";
break;
}
case 5:
{
e.Row.Header = "2-30";
break;
}
case 6:
{
e.Row.Header = "3-00";
break;
}
case 7:
{
e.Row.Header = "3-30";
break;
}
case 8:
{
e.Row.Header = "4-00";
break;
}
case 9:
{
e.Row.Header = "4-30";
break;
}
case 10:
{
e.Row.Header = "5-00";
break;
}
case 11:
{
e.Row.Header = "5-30";
break;
}
case 12:
{
e.Row.Header = "6-00";
break;
}
case 13:
{
e.Row.Header = "6-30";
break;
}
case 14:
{
e.Row.Header = "7-00";
break;
}
case 15:
{
e.Row.Header = "7-30";
break;
}
case 16:
{
e.Row.Header = "8-00";
break;
}
case 17:
{
e.Row.Header = "8-30";
break;
}
case 18:
{
e.Row.Header = "9-00";
break;
}
case 19:
{
e.Row.Header = "9-30";
break;
}
case 20:
{
e.Row.Header = "10-00";
break;
}
case 21:
{
e.Row.Header = "10-30";
break;
}
case 22:
{
e.Row.Header = "11-00";
break;
}
case 23:
{
e.Row.Header = "11-30";
break;
}
default:
{
break;
}
}
得到列标题和单元格值 -
private void Grid1_SelectedCellsChanged(object sender,
SelectedCellsChangedEventArgs e)
{
foreach (var item in e.AddedCells)
{
var col = item.Column as DataGridColumn;
MessageBox.Show(""+col.Header);
var fc = col.GetCellContent(item.Item);
if (fc is TextBlock)
{
MessageBox.Show("Values" + (fc as TextBlock).Text);
}
}
}
输出 - 消息显示选定的列标题值,箭头解释要显示的行标题。
【问题讨论】:
-
显示更多 xaml 代码..如何定义行标题