私は以前この質問をしていましたが、回答が得られませんでしたが、今私は詳細を持っています。DataGridの列ヘッダーのソートアイコンの表示をプログラムで変更します
基本的には、wpfデータグリッド列に列ソートアイコンをプログラムで表示します。
私はこれを行うには、次のコードを持っている:
private void dtgMain_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
dtgMain.Columns[0].SortDirection = ListSortDirection.Ascending;
}
これは、列のソート順を設定するのではなく、グリッドを描画するときにアイコンが表示されませんようです。
メッセージボックスをメソッドに追加すると、正常に動作します。私の質問は二重です。なぜメッセージボックスはメソッドを動作させますか?そして、メッセージボックスを使用せずにどうすればそれを動作させることができますか?
これはこれでメッセージボックスでの作業方法であって、ここで
private void dtgMain_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
MessageBox.Show("Here");
dtgMain.Columns[0].SortDirection = ListSortDirection.Ascending;
}
編集 は、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の設定された方法であり、あなたが必要な場合は私に知らせてくださいこれ以上の情報。
あなたが記述した動作を再現することはできません。コードを実行すると、メッセージボックスが最初に表示されるかどうかにかかわらず、矢印が上に表示されます。あなたは、DataGridのDataContextを変更させる原因と何が起こっているのかについての情報を提供できますか? –
Okボブが今アップロードしています – user589195