編集#2:
public void ReverseOrderRegBtns()
{
ICollectionView view = CollectionViewSource.GetDefaultView(GlobalObservableCol.regBtns);
view.SortDescriptions.Add(new SortDescription("ReverseOrder", ListSortDirection.Ascending));
view.Refresh();
}
ICollectionView をどのように適合させるかはよくわかりませんが、何らかのロジックを実行しているタイマーにも割り込みます。何らかの理由で、ボタンが作成されたときにカウントを開始するタイミングが中断されます。
私のアプリケーションにはいくつかのタイマーがあるため、作成されるボタンは x 秒ごとに可能な新しいコンテンツで更新されます。
編集:
データバインディングは次のようになります。
<ListBox x:Name="lbRegistration" ItemsSource="{Binding regBtnsReverse, ElementName=Window}" Background="{x:Null}"
古い: public ObservableCollection RegBtns { get { if (GlobalObservableCol.regBtns == null) { return new ObservableCollection(); } GlobalObservableCol.regBtns を返します。} }
新規 (機能しなくなりました)、逆は ObserableCol クラスにあります
public IEnumerable<RegistrationButton> RegBtns
{
get
{
return GlobalObservableCol.regBtnsReverse;
}
}
ObservableCollection リストが利用可能な静的クラスで IEnumerable を作成しました。
データバインディングが IEnumerable の場合、バインドできないようです。他のクラスにある NumbersReverse メソッドを MainWindow.xls にバインドする方法は?
カスタム スタイルの WPF ボタンを保持する ObservableCollection があります。
これらの項目は動的に作成され、カスタム スライダー コントロール (リストボックス) に追加されます。たとえば、ボタン 1、ボタン 2、ボタン 3、...
私が欲しいのは正反対です。
たとえば、ボタン 3、ボタン 2、ボタン 1 です。 これはリンクされたリストのように聞こえますが、アプリケーション全体がロジック全体でこの監視可能なコレクションを既に使用しています。
ボタンが UI に表示されたら、最後に追加されたボタンをスライダー (リストボックス コントロール) の最初の項目として配置する必要があります。
これをどのように正確にやってのけることができますか?
ありがとう、PeterP