1

私は WPF に慣れていないので、簡単に解決できると思っていた問題に行き詰まっています。私は gridView (テレリック 1) を持っています。ItemsSource は ObservableCollection です。すべて正常に動作します。データが変更されたとき、何かが削除または追加されたときにグリッドで確認できます。グリッドが更新されます。私の問題は、コレクションが変更されると、変更された行がグリッドの最後の行になり、並べ替える必要があることです。コレクションが変更されたときにグリッドを並べ替えるために SortDescriptor を追加しようとしましたが、何も起こりません。

//This update changes function is the one that changes the collection    
updateChanges(field, new_value);
//This is the sortDescriptor that is supposed to order the grid
UIGlobal.MainPage.gridAnalog.SortDescriptors.Add(new SortDescriptor()
{
     Member = "ColName",
     SortDirection = System.ComponentModel.ListSortDirection.Ascending
});

そして、これは私のグリッドです

<telerik:RadGridView>
   <telerik:RadGridView.Columns>
        <telerik:GridViewDataColumn UniqueName="ColName" Header="Name" DataMemberBinding="{Binding Key}"/>
        <telerik:GirdViewDataColumn Header="Value" DataMemberBinding="{Binding Value}"/>
   </telerik:RadGridView.Columns>
 </telerik:RadGridView>

ColName 列から注文しようとしていますが、取得できません。

誰かが私を助けてくれることを願っています。ありがとう!

4

2 に答える 2

0

私はテレリックを使ったことはありませんが、これを試すことができます:

//Add  reference  xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"

<UserControll.Resources> 
 <CollectionViewSource Source="{Binding YourCollection}" x:Key="sorted">
     <CollectionViewSource.SortDescriptions>
         <scm:SortDescription  PropertyName="ColName" Direction="Ascending"/>
         </CollectionViewSource.SortDescriptions>
         </CollectionViewSource>

</UserControll.Resources>                               
<telerik:RadGridView  ItemsSource="{Binding Source={StaticResource sorted}}"> 
   <telerik:RadGridView.Columns>
        <telerik:GridViewDataColumn UniqueName="ColName" Header="Name" DataMemberBinding="{Binding Key}"/>
        <telerik:GirdViewDataColumn Header="Value" DataMemberBinding="{Binding Value}"/>
   </telerik:RadGridView.Columns>
 </telerik:RadGridView>
于 2012-09-14T10:21:58.610 に答える
0

これは私が見つけた解決策であり、誰かを助けるかもしれません。グリッドに ColumnSortDescriptor を追加しました。

//Establish grid's ItemsSource
grid.ItemsSource = observableDicData;    
//Remove previous SortDescriptors
grid.SortDescriptors.Clear();
//Add a SortDescriptor
ColumnSortDescriptor csd = new ColumnSortDescriptor()
{
     //In column is the UniqueName of the grid's column I want to sort by
     Column = this.grid.Columns["NameAnalog"],
     SortDirection = ListSortDirection.Ascending
};
this.gridAnalog.SortDescriptors.Add(csd);

そして UserCanSort のプロパティを無効にしました。

于 2012-09-20T08:08:54.340 に答える