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

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

從依賴屬性生成自定義項(xiàng)控件作為 UserControl 中的項(xiàng)源

從依賴屬性生成自定義項(xiàng)控件作為 UserControl 中的項(xiàng)源

C#
慕雪6442864 2023-09-09 16:16:41
我正在制作一個(gè) UserControl 以從依賴項(xiàng)屬性生成附加文件列表作為 ItemSource。但 ItemSource (DependencyProperty) 計(jì)數(shù)為 0。我嘗試調(diào)試并意識(shí)到 ViewModel 中的 ObservableCollection 是在 UserControl 的構(gòu)造函數(shù)初始化后綁定的。我正在以 MVVM 模式進(jìn)行編碼,我創(chuàng)建了一個(gè)函數(shù)來(lái)為 ViewModel 中的 ObservableCollection 準(zhǔn)備一些示例數(shù)據(jù),并在 MainWindow 內(nèi)將 UserControl 的 DataContext 與該 ViewModel 綁定,然后為 ObservableCollection 設(shè)置 ItemSource我的 ViewModel 代碼隱藏://The properties  ObservableCollection<FileAttachmentModel> filesAttachment;        public ObservableCollection<FileAttachmentModel> FilesAttachment        {            get { return filesAttachment; }            set { filesAttachment = value; OnPropertyChanged("FilesAttachment"); }        }//The function prepare sample data private ObservableCollection<FileAttachmentModel> PrepareData()        {            FilesAttachment.Add(new FileAttachmentModel() { FileName = "TrackA", FilePath = "D:\trackA.png" });            FilesAttachment.Add(new FileAttachmentModel() { FileName = "TrackB", FilePath = "D:\trackB.png" });            FilesAttachment.Add(new FileAttachmentModel() { FileName = "TrackC", FilePath = "D:\trackC.png" });        }我的用戶控件 xaml:<UserControl x:Class="MailSender.Controls.FileAttachment.FileAttachment"             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"              xmlns:d="http://schemas.microsoft.com/expression/blend/2008"              xmlns:local="clr-namespace:MailSender.Controls.FileAttachment"                         mc:Ignorable="d"              d:DesignHeight="450" d:DesignWidth="800"              DataContext="{Binding RelativeSource={RelativeSource Self}}"             Name="fileAttachmentUC"             >使用中:<control:FileAttachment DataContext="{StaticResource vmMainWindow}" ItemSource="{Binding FilesAttachment,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>我期望的是為附加文件制作一個(gè)容器,例如 Microsoft 的 Outlook。請(qǐng)幫忙!提前致謝!
查看完整描述

1 回答

?
慕姐8265434

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

GenerateFileItem每當(dāng)使用以下方法設(shè)置依賴項(xiàng)屬性時(shí),您都應(yīng)該調(diào)用PropertyChangedCallback:


public static readonly DependencyProperty ItemSourceProperty = DependencyProperty.Register("ItemSource",

    typeof(ObservableCollection<FileAttachmentModel>), typeof(FileAttachment), new PropertyMetadata(new PropertyChangedCallback(OnChanged));


//the wrapper property

public ObservableCollection<FileAttachmentModel> ItemSource

{

    get { return (ObservableCollection<FileAttachmentModel>)GetValue(ItemSourceProperty); }

    set { SetValue(ItemSourceProperty, value); }

}


private static void OnChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)

{

    FileAttachment fa = (FileAttachment)d;

    fa.GenerateFileItem(fa.ItemSource);

}

在初始化ItemSource之前無(wú)法設(shè)置該屬性。UserControl


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

添加回答

舉報(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)