मामले में आप इस तरह कई बच्चे तत्वों का उपयोग करना चाहते हैं:
class MyClass
{
public int Id;
public MyOtherClass OtherClass;
}
class MyOtherClass
{
public string Name;
public int Number;
}
कैसे के बारे में:
1 समाधान सेट किसी घटना में प्रत्येक कक्ष के लिए मूल्य (mabye एक दूसरे से बेहतर है) मैन्युअल रूप से, डेटा स्रोत की स्थापना, उदाहरण के लिए के बाद:
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
MyClass data = dgv.Rows[ e.RowIndex ].DataBoundItem as MyClass;
dgv.Rows[ e.RowIndex ].Cells[ "colName" ].Value = data.OtherClass.Name;
dgv.Rows[ e.RowIndex ].Cells[ "colNumber" ].Value = data.OtherClass.Number;
}
दूसरा समाधान डेटा से उचित डेटाटेबल बनाने के बारे में और फिर बस इसे बांधें?
आप (यानी DataPropertyName = "MyProp1.MyProp2.MyProp3"
उपयोग करते हुए) आप इस
private void Grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridViewColumn column = Grid.Columns[e.ColumnIndex];
if (column.DataPropertyName.Contains("."))
{
object data = Grid.Rows[e.RowIndex].DataBoundItem;
string[] properties = column.DataPropertyName.Split('.');
for (int i = 0; i < properties.Length && data != null; i++)
data = data.GetType().GetProperty(properties[i]).GetValue(data);
Grid.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = data;
}
}
क्या आपको यकीन है DataPropertyName तुम क्या चाहते है? ऐसा लगता है कि आप मूल्य की रेखाओं के साथ कुछ और ढूंढ रहे हैं। मुझे संदेह है कि आप एएसपी.Net के साथ काम नहीं कर रहे हैं, जो मैं सबसे ज्यादा परिचित हूं, लेकिन मैं डेटाग्रिड व्यूटेक्स्टबॉक्स कॉलम के अन्य गुणों की जांच करता हूं ताकि यह देखने के लिए कि वहां कुछ और है जो आपको चाहिए जो आपको चाहिए। – Melanie
@ मेलानी मैं विंडोज़ फॉर्म का उपयोग कर रहा हूं।मैं अन्य गुणों में एक नज़र डालेंगे – Andrey
इसके अलावा, जब मैं किसी अन्य ऑब्जेक्ट की संपत्ति का उपयोग करता हूं तो ठीक है, जैसे: DataPropertyName = "MasterName" – Andrey