如何从WPF Itemscontrols中的标签中获取值

时间:2016-12-08 11:59:32

标签: c# wpf vb.net xaml

下午好,我正在写这个问题,看看你是否可以帮助我解决我遇到的问题,这可能很容易解决,但我几天都无法工作。

WPF编程我创建了一个itemscontrols,其中列出了包含我所有书籍的列表,直到所有内容都完美无缺,我的问题是我想按下按钮时我会这样做,我取名字的值预定在另一部分使用它。

然后我留下我拥有的代码片段,以便我能理解更多

<StackPanel Name="stkMain">
    <ItemsControl Name="itmCntrl">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center" ></WrapPanel>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <StackPanel Name="stk">
                        <materialDesign:Card Width="300" Margin="10" VerticalAlignment="Stretch">
                            <Grid>

                                <Grid.RowDefinitions>
                                    <RowDefinition Height="*" />
                                    <RowDefinition Height="Auto" />
                                </Grid.RowDefinitions>
                                <Image Name="img" Source="{Binding PhotoPath}" Height="300" Width="240" Stretch="Fill" Cursor="Hand" />
                                    <Button Grid.Row="1" Grid.Column="1" Style="{DynamicResource MaterialDesignFlatButton}" Content="MORE"
                                         HorizontalAlignment="Right" Margin="8" Click="Button_Click"/>
                                    <Label x:Name="nan" Content="{Binding Name}"></Label>
                            </Grid>
                        </materialDesign:Card>
                    </materialDesign:TransitioningContent>
                </StackPanel>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</StackPanel>

正如你所看到的每个创建的项目我有一个图像,一个标签和一个按钮,基本上我不能做的是按下按钮我取标签的值

我希望我能帮上这个。

谢谢。

1 个答案:

答案 0 :(得分:1)

Button_Click方法sender参数中的

是一个具有DataContext个ptoperty的Button。 DataContext是具有Name属性的单个对象:

// c#
Button b = (Button)sender;
object dc = b.DataContext;
//// cast dc to correct type, e.g.
// Book book = (Book)dc;
// string name = book.Name;