WPF绑定路径= /不工作?

时间:2010-05-06 20:47:21

标签: c# wpf xaml .net-4.0

我已经设置了我的DataContext

<Window.DataContext>
    <c:DownloadManager />
</Window.DataContext>

DownloadManagerEnumerable<DownloadItem>的位置。然后我像这样设置DataGrid

<DataGrid Name="dataGrid1" ItemsSource="{Binding Path=/}" ...

所以它应该列出所有的DownloadItems,对吗?所以我应该能够设置我的列:

<DataGridTextColumn Binding="{Binding Path=Uri, Mode=OneWay}"

其中UriDownloadItem的属性。但它似乎并不喜欢这样。在可视属性编辑器中,它无法识别Uri是一个有效的属性,所以我猜我做错了。

以前工作时,我将数据网格绑定到Values,但后来我从DownloadManager中取出了可枚举的数据并使其自身可枚举。我该如何解决这个问题?

PS:“不起作用”我的意思是它没有列出任何项目。我已经在DM的构造函数中添加了一些,所以它不应该是空的。

3 个答案:

答案 0 :(得分:7)

试试ItemsSource="{Binding}"。这应该够了。

答案 1 :(得分:5)

为了回应OP关于为什么{Binding}有效的问题,但{Binding Path = /}不起作用,我将添加以下信息作为澄清差异的答案。

以下摘自MSDN Data Binding Overview > Binding to Collections

  

当前项目指针

     

观点也支持a的概念   当前项目。你可以浏览   集合视图中的对象。如   你导航,你正在移动一个项目   允许您检索的指针   那个存在的对象   集合中的特定位置。   有关示例,请参阅How to: Navigate Through the Objects in a Data CollectionView

     

因为WPF仅绑定到集合   通过使用视图(视图你   指定,或集合的默认值   视图),所有绑定到集合   有一个当前项目指针。什么时候   绑定到视图,斜杠(“/”)   Path值中的字符指定   视图的当前项。在里面   以下示例,数据上下文是   集合视图。第一行   绑定到集合。第二   line绑定到当前项目   采集。第三行绑定   的Description属性   该集合中的当前项目。

<Button Content="{Binding }" />
<Button Content="{Binding Path=/}" />
<Button Content="{Binding Path=/Description}" />

答案 2 :(得分:-1)

作为Danko答案的替代解决方案,我发现了静态资源! (我是WPF菜鸟)

<Window x:Class="ImageGetGUI.MainWindow"
    ...
    <Window.Resources>
        <c:DownloadManager x:Key="dm"/>
    </Window.Resources>
    ...
    <DataGrid Name="dataGrid1" ItemsSource="{StaticResource dm}" ...