【问题标题】:binding to observable collection silverlight 4, grid绑定到可观察的集合 silverlight 4,网格
【发布时间】:2011-05-17 10:46:28
【问题描述】:

我可以将一个简单的“网格”绑定到一个可观察的集合吗?所以我有一个只有一列和几行的网格。这些行在运行时填充了一些超链接,这些超链接可以被删除/添加等。我不想编写函数来每次都从网格中添加/删除它们,而是更喜欢使用可观察的集合并让网格自行更新。一个简单的网格可以做到这一点吗?我试过了,但它甚至没有编译。

谢谢

[编辑] 已解决。标记的答案是正确的[/EDIT]

【问题讨论】:

    标签: silverlight data-binding


    【解决方案1】:

    其他答案涵盖各种基础,但您的具体要求由ItemsControl 填写。您可能希望将其包含在 ScrollViewer 中,以防万一您的链接多于一次可以看到的链接。你会有这样的标记:-

    <ScrollViewer>
       <ItemsControl ItemsSource="{Binding MyObsCollectionOfUrlInfo">
           <ItemsControl.ItemTemplate>
              <DataTemplate>
                  <HyperLinkButton NavigateUri={Binding Uri} Content={Binding Title} />
              </DataTemplate>
           </ItemsControl.ItemTemplate>
       </ItemsControl>
    </ScrollViewer>
    

    您的可观察集合将包含以下类型的对象列表:-

     public class UrlInfo
     {
          public Uri Uri {get; set; }
          public string Title {get; set; }
     }
    

    【讨论】:

    • 您先生,一针见血。我查看了上面的链接,这对我来说似乎有点太骇人听闻了。所以我使用数据网格做了所有事情然后看到了你的解决方案,看起来真的很简单,甚至不尝试。试试我做了,它就像一个魅力。简单即美 !谢谢
    • 可能是我在那里有点草率。它不是真的很好用,我不知道为什么。请参阅我上面帖子中的Edit[/EDIT] 部分。谢谢
    【解决方案2】:

    Silverlight 不支持此功能。您有两个选择,要么使用DataGrid,要么使用以下代码,让您在ItemsControl 中使用Grid,这将实现您的目标。

    http://www.scottlogic.co.uk/blog/colin/2010/11/using-a-grid-as-the-panel-for-an-itemscontrol/

    【讨论】:

      【解决方案3】:

      @ColinE 是正确的,您不能绑定到 Grid,但您可以ObservableCollection 绑定到 DataGridItemsControl

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-15
        • 1970-01-01
        • 2011-11-16
        • 1970-01-01
        • 1970-01-01
        • 2011-02-24
        • 2013-05-21
        • 1970-01-01
        相关资源
        最近更新 更多