DataGrid 相关总结

 

DataGrid  在AutoGenerateColumns=True时  会根据ItemsSource绑定的类型自动生成列但这个过程比较早,在windows.load之前,

因此事件绑定无法执行,  只能给他的AutoGeneratingColumn赋成员函数,但是在类的xaml写还可以,若要在DataTemplate中写的话,

无法赋予成员函数,因为改为在转换中进行赋值。

ItemsSource="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource DataGridItemSourceConvert}}"

 

public class DataGridItemSourceConvert : IValueConverter
{
#region IValueConverter 成员
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string str = value.GetType().ToString();
if (value.GetType() == typeof(DataGrid))
{
DataGrid grid = value as DataGrid;

string strtype = grid.DataContext.GetType().ToString();
if (grid.DataContext.GetType() == typeof(SignQueryViewModel))
{
SignQueryViewModel model = grid.DataContext as SignQueryViewModel;
grid.AutoGeneratingColumn += model.DG1_AutoGeneratingColumn;

return model.tableList;
}
else
{
}
}

return null;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
#endregion
}

posted @ 2017-02-11 23:54  高_山_流_水  阅读(82)  评论(0)    收藏  举报