第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

WPF ObservableCollection 未在功能區(qū)視圖中更新

WPF ObservableCollection 未在功能區(qū)視圖中更新

C#
達(dá)令說(shuō) 2023-07-09 09:55:19
我創(chuàng)建了一個(gè) C# WPF 應(yīng)用程序,其中的 RibbonApplicationMenu 顯示最近使用的 (MRU) 列表。不幸的是,當(dāng)我從列表中選擇現(xiàn)有文件或上傳新文件時(shí),顯示不會(huì)更新。在 XAML 中我有:<local:MostRecentFiles x:Key="MostRecentFilesData" />    ...<ribbon:RibbonApplicationMenu.AuxiliaryPaneContent>    <ribbon:RibbonGallery Name="RecentDocuments" CanUserFilter="False"         SelectedValue="{Binding MostRecentFile, UpdateSourceTrigger=PropertyChanged}">        <ribbon:RibbonGalleryCategory Header="Recent Documents"            ItemsSource="{DynamicResource MostRecentFilesData}">        </ribbon:RibbonGalleryCategory>    </ribbon:RibbonGallery></ribbon:RibbonApplicationMenu.AuxiliaryPaneContent>DataContext 設(shè)置為包含以下內(nèi)容的類private ObservableCollection<string> _mostRecentFile = new ObservableCollection<string>();public ObservableCollection<string> MostRecentFile{    get { return _mostRecentFile; }    set    {        _mostRecentFile = value;        OnPropertyChanged("MostRecentFile");    }}public event PropertyChangedEventHandler PropertyChanged;protected virtual void OnPropertyChanged(string propertyName){    PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}在 OpenFile 例程中,代碼是MostRecentFiles mrf = new MostRecentFiles();mrf.AddMRUitem(openFileDlg.FileName);MostRecentFiles 類包含主要的類方法,我在代碼中放置了一些示例文件路徑。public class MostRecentFiles : ObservableCollection<string>{    public ObservableCollection<string> MRUmenuItems = new ObservableCollection<string>();    public MostRecentFiles()    {        AddMRUitem(@"C:\MyDocuments\File3.txt"); //        AddMRUitem(@"C:\MyDocuments\File2.txt"); // } Sample files        AddMRUitem(@"C:\MyDocuments\File1.txt"); //    }在UpdateMRUList()中取消刪除OnPropertyChanged會(huì)產(chǎn)生錯(cuò)誤:錯(cuò)誤 CS1503 參數(shù) 1:無(wú)法從 'string' 轉(zhuǎn)換為 'System.ComponentModel.PropertyChangedEventArgs'當(dāng)我啟動(dòng)程序時(shí),菜單正確顯示三個(gè)文件,但當(dāng)我選擇一個(gè)文件時(shí),顯示的順序不會(huì)改變;我希望所選文件移至列表頂部。同樣,當(dāng)我打開(kāi)新文件時(shí),文件名不會(huì)添加到 MRU 中。但是,如果我單步執(zhí)行代碼,列表就會(huì)按正確的順序更新。我做錯(cuò)了什么?
查看完整描述

1 回答

?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

您正在綁定SelectedValue到一個(gè)集合。您不需要自定義集合。只需添加ObservableCollection到您的視圖模型并移動(dòng)所選項(xiàng)目上的項(xiàng)目已更改:


查看型號(hào):


private void OnSelectedMostRecentFileChanged()

{

  // Move the selected item to the front of the list

  this.MostRecentFiles.Move(this.MostRecentFiles.IndexOf(this.SelectedRecentFile), 0);

}


private string _selectedRecentFile;

public string SelectedRecentFile

{

    get { return _selectedRecentFile; }

    set

    {

        _selectedRecentFile= value;

        OnSelectedMostRecentFileChanged();

        OnPropertyChanged(nameof(SelectedRecentFile));

    }

}


private ObservableCollection<string> _mostRecentFiles = new ObservableCollection<string>();

public ObservableCollection<string> MostRecentFiles

{

    get { return _mostRecentFiles; }

    set

    {

        _mostRecentFiles = value;

        OnPropertyChanged(nameof(MostRecentFiles));

    }

}

看法:


<ribbon:RibbonApplicationMenu.AuxiliaryPaneContent>

    <ribbon:RibbonGallery Name="RecentDocuments" CanUserFilter="False" 

        SelectedItem="{Binding SelectedRecentFile}">

        <ribbon:RibbonGalleryCategory Header="Recent Documents"

            ItemsSource="{Binding MostRecentFiles}">

        </ribbon:RibbonGalleryCategory>

    </ribbon:RibbonGallery>

</ribbon:RibbonApplicationMenu.AuxiliaryPaneContent>


查看完整回答
反對(duì) 回復(fù) 2023-07-09
  • 1 回答
  • 0 關(guān)注
  • 209 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)