मैं बाइंडिंग हूँ में एक डेटा ग्रिड गतिशील डेटा को IDictionary के माध्यम से जोड़ने के लिए: http://www.scottlogic.co.uk/blog/colin/2009/04/binding-a-silverlight-datagrid-to-dynamic-data-via-idictionary/comment-page-1/#comment-8681कैसे गतिशील रूप से एक कनवर्टर कोड-पीछे
लेकिन मैं XAML में किसी भी स्तंभ को परिभाषित नहीं करना चाहते (नीचे यह कैसे कॉलिन में किया जाता है है Eberhardt पद
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="Forename" Binding="{Binding Converter={StaticResource RowIndexConverter}, ConverterParameter=Forename}" />
</data:DataGrid.Columns>
तो मैं कोशिश करते हैं और पीछे कोड में एक ही बात करने के लिए निम्नलिखित कोड लिखा है, लेकिन कोड RowIndexConverter फोन नहीं करता है कुछ कमी किया जाना चाहिए
कोड:।।
कोड (यहां संदर्भ के लिए) की// add columns
DataGridTextColumn textColumn = new DataGridTextColumn();
textColumn.Header = "Forename";
Binding bind = new Binding("Forename");
bind.Converter = new RowIndexConverter() ;
bind.ConverterParameter = "Forename";
textColumn.Binding = bind;
_dataGrid.Columns.Add(textColumn);
बाकी:
// generate some dummy data
Random rand = new Random();
for (int i = 0; i < 200; i++)
{
Row row = new Row();
row["Forename"] = s_names[rand.Next(s_names.Length)];
row["Surname"] = s_surnames[rand.Next(s_surnames.Length)];
row["Age"] = rand.Next(40) + 10;
row["Shoesize"] = rand.Next(10) + 5;
_rows.Add(row);
}
// bind to our DataGrid
_dataGrid.ItemsSource = _rows;
public class Row
{
private Dictionary<string, object> _data = new Dictionary<string, object>();
public object this[string index]
{
get
{
return _data[index];
}
set
{
_data[index] = value;
}
}
}
आह, महान काम, धन्यवाद। –