私は7種類のListViewを持っています。GridViewColumnHeader ClickイベントでのListViewControlの取得方法
GridViewColumnHeaderをクリックすると、SortClick(object sender, RoutedEventArgs e)
- と呼ばれるソート方法があり、SortClickイベントが発生します。
しかし、ソートされなければならないListViewの私が言う必要があり、この方法では、可能
今listview2.SortNow();
私の質問ですが、私は多分GridViewColumnHeader(sender
)またはe
からコントロール(リストビュー)を取得する方法、それも可能ですか?ここで
<ListView ItemsSource="{Binding MissingTables}" Name="missingTablesListView" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="0" MinHeight="540" HorizontalContentAlignment="Stretch">
<ListView.Background>
<ImageBrush />
</ListView.Background>
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding TableName}" Width="Auto">
<GridViewColumnHeader Click="SortClick" Content="TableName" Tag="TableName" ToolTip="Sortieren" />
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Beschreibung}" Width="Auto">
<GridViewColumnHeader Click="SortClick" Content="Description" Tag="Beschreibung" ToolTip="Sortieren" />
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
SortClickコードです:
/// <summary>
/// Sortiert (Ascending/Descending)
/// </summary>
/// <param name="sender">sender</param>
/// <param name="e">e</param>
private void SortClick(object sender, RoutedEventArgs e)
{
//ListView listView = sender as ListView;
GridViewColumnHeader column = sender as GridViewColumnHeader;
String field = column.Tag as String;
if (currentSortColumn != null)
{
AdornerLayer.GetAdornerLayer(currentSortColumn).Remove(sorter);
listView.Items.SortDescriptions.Clear();
}
ListSortDirection newDir = ListSortDirection.Ascending;
if (currentSortColumn == column && sorter.Direction == newDir)
{
newDir = ListSortDirection.Descending;
}
currentSortColumn = column;
sorter = new Sorter(currentSortColumn, newDir);
AdornerLayer.GetAdornerLayer(currentSortColumn).Add(sorter);
listView.Items.SortDescriptions.Add(new SortDescription(field, newDir));
}
はい、どのように送信者引数からListViewコントロールを取得できますか? – eMi
By ListView ListView = ListViewとしての送信者; – Clemens
が動作していない、 'listView'が' null'です – eMi