gpt4 book ai didi

c# - 更改显示 (UI)/项目 Observable 集合的顺序

转载 作者:行者123 更新时间:2023-11-30 14:36:45 24 4
gpt4 key购买 nike

编辑#2:

    public void ReverseOrderRegBtns()
{
ICollectionView view = CollectionViewSource.GetDefaultView(GlobalObservableCol.regBtns);
view.SortDescriptions.Add(new SortDescription("ReverseOrder", ListSortDirection.Ascending));
view.Refresh();
}

不太确定如何将 ICollectionView 放入其中,它还会中断正在执行某些逻辑的计时器。出于某种原因,它打断了我在创建按钮时开始计时的时间。

我的应用程序有多个计时器,因此创建的按钮每 x 秒更新一次可能的新内容。

编辑:

数据绑定(bind)如下所示:

<ListBox x:Name="lbRegistration" ItemsSource="{Binding regBtnsReverse, ElementName=Window}" Background="{x:Null}" 

旧: 公共(public) ObservableCollection RegBtns { 得到 { 如果(GlobalObservableCol.regBtns == null) { 返回新的 ObservableCollection(); } 返回 GlobalObservableCol.regBtns; }

新增(不再有效),反之在ObserableCol类中

public IEnumerable<RegistrationButton> RegBtns
{
get
{
return GlobalObservableCol.regBtnsReverse;
}
}

我已经在 ObservableCollection 列表可用的静态类中创建了 IEnumerable。

当我的数据绑定(bind)是 IENumerable 时,我似乎无法绑定(bind)。如何绑定(bind) NumbersReverse 位于我的 MainWindow.xls 的其他类中的方法?


我有一个 ObservableCollection,它包含自定义样式的 WPF 按钮。

这些项目会动态创建并添加到自定义 slider 控件(列表框)上。例如按钮 1、按钮 2、按钮 3、...

我想要的恰恰是相反

例如按钮 3、按钮 2、按钮 1。这听起来像一个链表,但我的整个应用程序已经在整个逻辑中使用了这个 Observable 集合。

当按钮显示在 UI 中时,最后添加的按钮应作为我的 slider (即列表框控件)上的第一项放置。

我怎样才能做到这一点?

谢谢,彼得P

最佳答案

<ListBox ItemsSource="{Binding Foo}"/>

private ObservableCollection<RegButtton> RegBtns = new...;

public ICollectionView Foo { get; set; }

Foo = CollectionViewSource.GetDefaultView(RegBtns);
Foo.SortDescriptions.Add(new SortDescription("SomePropertyName", ListSortDirection.Ascending));
Foo.Refresh();

关于c# - 更改显示 (UI)/项目 Observable 集合的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10206394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com