Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF-绑定到dll函数_C#_Wpf_Data Binding_Dll - Fatal编程技术网

C# WPF-绑定到dll函数

C# WPF-绑定到dll函数,c#,wpf,data-binding,dll,C#,Wpf,Data Binding,Dll,如何绑定显示ObservableCollection中由某个dll中的函数返回的所有项的列表框 我有一个名为filemanager的dll singltone类和一个函数Instance(),该函数返回指向该类的指针。然后我有一个名为GetFiles()的函数,它返回包含所有文件名的ObservableCollection 我有一个xml列表框,我想将它绑定到itemsource属性 文件管理器。实例().GETFILSESH()/代码>,我怎么做?< /P> < P>你应该考虑使用MVVM设计

如何绑定显示
ObservableCollection
中由某个dll中的函数返回的所有项的列表框

我有一个名为
filemanager
的dll singltone类和一个函数
Instance()
,该函数返回指向该类的指针。然后我有一个名为
GetFiles()
的函数,它返回包含所有文件名的
ObservableCollection

我有一个xml列表框,我想将它绑定到
itemsource
属性

<代码>文件管理器。实例().GETFILSESH()/代码>,我怎么做?< /P> < P>你应该考虑使用MVVM设计模式。在本例中,您的视图模型上有一个属性,该属性公开
filemanager.Instance().GetFiles()
集合,并且您的视图将绑定到此属性

public class MyViewModel
{
    public MyViewModel()
    {
        this.Files = FilesManager.Instance().GetFiles();
    }

    public XXX Files { get; private set; }
}

<ListBox ItemsSource="{Binding Files}" ... />
公共类MyViewModel
{
公共MyViewModel()
{
this.Files=FilesManager.Instance().GetFiles();
}
公共XXX文件{get;private set;}
}

如果要在构造后更改
文件
引用,则需要实现
INotifyPropertyChanged
以更新UI。

属性必须为
dependencProperty
否,否则,INotifyPropertyChanged将是从视图模型执行任何UI更新通知的正确方法。您的视图模型不应该是依赖对象。嗯。。?但是
ItemsSource=“{Binding Files}”
只有在
Files
是依赖属性时才起作用…不,这仅适用于绑定目标-在本例中是列表框的ItemsSource属性。在window.cs文件中定义的属性,对吗?如果我在XAML中写入
ItemsSource=“{Binding Files}”
,那么如果
Files
不是依赖属性(propdp snippt),绑定将不起作用。。。