代码之家  ›  专栏  ›  技术社区  ›  mpen

WPF绑定路径=/不工作?

  •  3
  • mpen  · 技术社区  · 14 年前

    我已经设立了我的 DataContext 这样地:

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

    在哪里? DownloadManager Enumerable<DownloadItem> . 然后我设定我的 DataGrid 这样地:

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

    所以它应该列出所有的下载项,对吗?因此,我应该能够将列设置为:

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

    在哪里? Uri 是的属性 DownloadItem . 但似乎不喜欢这样。在可视属性编辑器中,它无法识别 尿嘧啶尿路感染 是一个有效的属性,所以我猜我做错了什么。

    在我将数据网格绑定到 Values 但后来我把它从 下载管理器 并使自己成为可枚举的。我该怎么解决这个问题?

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

    3 回复  |  直到 14 年前
        1
  •  7
  •   Danko Durbić    14 年前

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

        2
  •  5
  •   Metro Smurf    14 年前

    为了回答OP提出的“为什么绑定有效,但绑定路径无效”的问题,我将添加以下信息作为答案来澄清差异。

    以下内容摘自 MSDN Data Binding Overview > Binding to Collections :

    当前项指针

    视图还支持 当前项目。你可以浏览 集合视图中的对象。AS 导航,移动项目 允许检索的指针 存在于该位置的对象 集合中的特定位置。 例如,请参见 How to: Navigate Through the Objects in a Data CollectionView .

    因为WPF只绑定到集合 通过使用视图 指定或集合的默认值 视图),集合的所有绑定 具有当前项指针。什么时候? 绑定到视图时,斜线(“/”) 路径值中的字符指定 视图的当前项。在 下面的示例中,数据上下文是 集合视图。第一行 绑定到集合。第二 行绑定到中的当前项 收集。第三行绑定到 的描述属性 集合中的当前项。

    <Button Content="{Binding }" />
    <Button Content="{Binding Path=/}" />
    <Button Content="{Binding Path=/Description}" />
    
        3
  •  -1
  •   mpen    14 年前

    作为丹科答案的替代方案,我发现了静态资源!(我是wpf noob)

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