我有一个数据网格,其列属性必须在代码中以编程方式更改为此我使用事件
AutoGeneratingColumn="Datagrid_AutoGeneratingColumn"
我做的:
private void Datagrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
string strDatagridName = (sender as DataGrid).Name;
switch (strDatagridName.ToUpper())
{
case "DTGPPTAB1":
case "DTGPPTAB3":
switch (e.PropertyName.ToUpper())
{
/*----Visible ----*/
case "DESCRIPTION": e.Column.Header = Langs.Word(Langs.eWords.Description); e.Column.Width = 33; break;<-------------here
case "NOTE": e.Column.Header = Langs.Word(Langs.eWords.Notes); break;
case "PARTPROGRAMFILENAME": e.Column.Header = Langs.Word(Langs.eWords.PPfilename); break;
/*----Hidden ----*/
case "LSTBLADES": e.Column.Header = Langs.Word(Langs.eWords.Blades); break;
case "LSTMYIMAGES": e.Column.Header = Langs.Word(Langs.eWords.Image); e.Column.Visibility = Visibility.Collapsed; break;
case "LSTMYSOUNDFILES": e.Column.Header = Langs.Word(Langs.eWords.Sound); e.Column.Visibility = Visibility.Collapsed; break;
case "BARCODE": e.Column.Header = Langs.Word(Langs.eWords.Barcode); e.Column.Visibility = Visibility.Collapsed; break;
case "PROGRAMTRACEFIELDS": e.Column.Header = Langs.Word(Langs.eWords.ProgramTracefields); e.Column.Visibility = Visibility.Collapsed; break;
default: e.Column.Header = e.PropertyName; break;
}
break;
}
一切正常。我需要的是在说明案例中。在这里,我可以设置以像素为单位的列宽度,但我无法按比例设置它,例如 33%。
所以简而言之,我想设置前 3 列将整个数据网格空间划分为 33% 33% 33%。所以用 % 而不是像素。谢谢