【问题标题】:Easiest way to access Texblock inside listbox itemtemplate在列表框项模板中访问 Texblock 的最简单方法
【发布时间】:2012-11-26 10:47:55
【问题描述】:

我已经看到了很多几乎相同问题的问题和答案,但这些答案都不适合我。苏,我的代码是:

<ListBox ItemsSource="{Binding Avakuvaandmed}" x:Name="lboxandmed" HorizontalAlignment="Left" Height="552" VerticalAlignment="Top" Width="970" SelectionChanged="lboxandmed_SelectionChanged" >
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal" x:Name="spanVärviSeda">
    I HAVE TO GET VALUE OF THIS --> <TextBlock x:Name="IDbox" Width="50" Text="{Binding Id}"></TextBlock>
                                    <TextBlock Width="130" Text="{Binding Nrmärk}"></TextBlock>
                                    <TextBlock x:Name="txtKehtivus" Width="130" Text="{Binding Lõpp}"></TextBlock>
                                    <TextBlock Width="130" Text="{Binding Eesnimi}"></TextBlock>
                                    <TextBlock Width="130" Text="{Binding Perenimi}"></TextBlock>
                                    <TextBlock Width="130" Text="{Binding Mark}"></TextBlock>
                                    <TextBlock Width="130" Text="{Binding Mudel}"></TextBlock>
                                    <TextBlock Width="130" Text="{Binding Aasta}"></TextBlock>
                                </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>

我必须获取名为“IDbox”的文本块的值。 请有人可以帮助我,或者至少给我一个线索。

【问题讨论】:

    标签: c# linq xaml binding itemtemplate


    【解决方案1】:

    您的代码看起来正确。如果您想在后面的代码中访问 IDbox 的值,那么您可以通过 Avakuvaandmed.ElementAt(rowno).Id 来完成,因为您将 Id 绑定到 IDBox。如果要访问 xaml 中的 BoxId 值。然后按如下方式使用绑定:

    {Binding Avakuvaandmed[rowno],Path=Id}
    

    您还可以使用 VisualTreeHelper 类访问 Textblock 值。您将需要遍历 ListBox 中的所有元素。

    【讨论】:

    • 对不起。我输入错误 你需要写 Avakuvaandmed.ElementAt(rowno)
    • 仍然无法正常工作,也许我做了一些其他的事情,因为我收到以下错误:当前上下文中不存在名称“Avakuvaandmed”
    • 在 xaml 页面中,在 UserControl.Resources 内应该有集合 Avakuvaandmed 并且在后面的代码中您需要通过 lboxandmed.ItemSource 访问集合。只要确保您在 Avakuvaandmed 存在的正确范围内。
    • xaml 页面的根元素是什么?无需在 Usercontrol.Resources 中添加集合。您可以在 ListBox.Resources 中添加集合 Avakuvaandmed。如果 Avakuvaandmed 集合未在资源内的 xaml 页面中定义,则不能直接将其绑定到 xaml 中的任何内容。
    • 根元素是window。绑定本身有效,但我需要获取所选行上文本块的值。这是我从事的第一个大项目,但我不太擅长这个。但我想不明白。
    猜你喜欢
    • 1970-01-01
    • 2017-09-19
    • 2011-05-18
    • 2015-05-11
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    相关资源
    最近更新 更多