可瀏覽(假)屬性我想在DataGridView
控件來顯示System.ServiceProcess.ServiceController
的MachineName
屬性:如何顯示在DataGridView中
dataGridView1.DataSource = ServiceController.GetServices();
它不添加MachineName
財產。據我所知,這是由於該屬性的[Browsable(false)]
屬性。
但是,當我將列添加手動像這樣:
dataGridView1.ColumnCount = 2;
dataGridView1.AutoGenerateColumns = false;
dataGridView1.Columns[0].Name = "Machine Name";
dataGridView1.Columns[0].DataPropertyName = "MachineName";
dataGridView1.Columns[1].Name = "Display Name";
dataGridView1.Columns[1].DataPropertyName = "DisplayName";
BindingSource bs = new BindingSource();
bs.DataSource = ServiceController.GetServices();
dataGridView1.DataSource = bs;
我希望要填充的MachineName
列,而實際上而列被創建在列中顯示的值爲空。
有沒有解決方法,所以我可以顯示此屬性?
不是重複:
我並不想重寫數據網格視圖控件,以使DataGrid鑑於AutoGenerateColumns屬性將成爲設計師可見。 我試圖在DataGridView中顯示[Browsable(false)]
屬性的ServiceController屬性。
我的人最終的解決方案,感興趣:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
if (this.dataGridView1.Columns[e.ColumnIndex].DataPropertyName == "MachineName")
{
var model = this.dataGridView1.Rows[e.RowIndex].DataBoundItem as ServiceController;
if (model != null)
e.Value = model.MachineName;
}
}
的可能的複製[DataGridView中的AutoGenerateColumns設置爲true以某種方式(http://stackoverflow.com/問題/ 1189576/datagridview-autogeneratecolumns-is-set-to-true-somehow) –
哪個文章完全解決了這個問題?這裏的列不會自動生成,但不會顯示數據。 –