C# - XAML 中的 WPF 反向绑定可观察集合



我有一个 ObservableCollection,它作为 ItemSource 绑定到我的 ComboBox 中。这是一个组合框,向您显示您所做的更改。我的问题是,现在,最新的更改显示在列表底部。我试图在属性中反转它,但是当我返回ComboboxName.Reverse()时,我得到了一个 IEnumerable 回来。我也不想用反向数据进行第二次收集。

另一种方法是在 XAML 中解决此问题。有人知道我该怎么做吗?

我在这里找到了这个答案,但我不明白如何实现它。可观察集合的反向顺序

SCM 代表

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

有一个解决方案对我有用。您必须根据自己的情况进行调整:

<Window.Resources>
<CollectionViewSource x:Key="customerGroups" Source="{Binding Path=Customers}">
        <CollectionViewSource.GroupDescriptions>
            <PropertyGroupDescription PropertyName="IsCompany"></PropertyGroupDescription>
        </CollectionViewSource.GroupDescriptions>
        <CollectionViewSource.SortDescriptions>
            <scm:SortDescription PropertyName="IsCompany" Direction="Descending"/>
            <scm:SortDescription PropertyName="DisplayName" Direction="Ascending"/>
        </CollectionViewSource.SortDescriptions>
    </CollectionViewSource>
</Window.Resources>

然后,将此资源引用为 ComboBox 的 ItemsSource,并将内容绑定到所需的属性:

 <ComboBox ItemsSource="{Binding Source={StaticResource customerGroups}}">
        <DataTemplate>
            <TextBlock Text="{Binding Path= FirstName}"></TextBlock>
        </DataTemplate>
    </ComboBox>

相关内容

  • 没有找到相关文章

最新更新