silverlight 中数据绑定到列表
我有一个包含 TextBlock 的网格。 Grid 的 DataContext 类型为 List
,我想将 TextBlock.Text 属性绑定到列表中第一个元素的 MyClass.MyProperty 属性。我尝试过类似的方法:
<Grid x:Name="RootLayout">
<TextBlock Text="{Binding [0].MyProperty}" />
</Grid>
但是当然,那不起作用。这样做的正确方法是什么?
编辑:
我将尝试让我的解释更清楚。我在网格中有多个元素,每个元素都绑定到列表中的不同项目。这些项目以自定义方式布局,这是 GridView 或 ListBox 无法完成的。网格中的一个项目是 TextBlock,我想将其 Text 属性绑定到列表中第一个元素的属性。一旦我知道如何做到这一点,我就可以扩展该知识以将绑定添加到网格中的其余元素。
编辑 2:
事实证明,我的代码在 Silverlight 中运行得很好。我的项目实际上是一个 WinRT 项目,但我认为如果将其标记为 Silverlight,我会得到更快的答案,因为数据绑定应该以相同的方式工作。我假设这是 WinRT 中的一个错误,所以我只需要找到一个解决方法:(
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(2)
[浮城] 2024-12-18 19:14:50
我不是 SL 专家,但我认为您使用了错误的 Grid 对象;尝试以这种方式使用 DataGrid
:
<data:DataGrid x:Name="targetDataGrid">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="MyProperty"
Binding="{Binding MyProperty}" />
</data:DataGrid.Columns>
</data:DataGrid>
另请参阅此处了解更多详细信息:在运行时定义 Silverlight DataGrid 列
编辑:然后按此方式:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding MyProperty}" />
</Grid>
在此处找到:http://msdn.microsoft.com/en-us /library/cc278072%28v=VS.95%29.aspx 向下滚动文章...
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我不确定我明白你为什么要这样做,但你可以创建一个属性,从列表中的项目返回你想要的内容,如下所示:
然后你将绑定到
MyBindingProperty
:编辑
我说你无法获得列表中的项目是错误的 - 我的错。你的装订应该是这样的:
如果你需要我,我会在角落里享受我简陋的馅饼。
I'm not sure I get why you want to do this, but you could create a property that returns what you want from the item in the list like so:
Then you'd bind to
MyBindingProperty
:EDIT
I was wrong in saying you can't get at the items in the List - my bad. Your binding should look like this:
If you need me I'll be in the corner enjoying my humble pie.