Я задал этот вопрос ранее и не получил ответа, но теперь у меня есть более подробная информация.Программно изменить отображение значка сортировки в заголовке столбца datagrid
В принципе, я хочу программно отобразить значок сортировки столбцов в столбце datagrid wpf.
У меня есть следующий код, чтобы сделать это:
private void dtgMain_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
dtgMain.Columns[0].SortDirection = ListSortDirection.Ascending;
}
Это, кажется, установить порядок сортировки столбца, но когда сетка рисуется иконка не показывает.
Когда я добавляю окно сообщения в метод, он отлично работает. Мой вопрос двоякий. Почему окно сообщения заставляет метод работать? И как я могу заставить его работать без использования почтового ящика?
Это метод работы с MessageBox в нем:
private void dtgMain_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
MessageBox.Show("Here");
dtgMain.Columns[0].SortDirection = ListSortDirection.Ascending;
}
редактировать Вот метод, который является установка DataContext в DataGrid
public void processLoad(string response)
{
XmlDataProvider provider = new XmlDataProvider();
if (provider != null)
{
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(response);
provider.Document = doc;
provider.XPath = "/moo/response/data/load/panel";
dtgMain.DataContext = provider;
}
}
Пожалуйста, дайте мне знать, если вам нужно больше информации.
Я не могу воспроизвести описанное вами поведение. Когда я запускаю код, стрелка появляется вверх, независимо от того, отображается ли окно сообщения первым или нет. Можете ли вы предоставить информацию о том, что вызывает изменение DataContext для датадайда и когда это происходит? –
Ok Bob сейчас загружается – user589195