繁体   English   中英

如何从Listview / Gridview WPF中提取某些数据单元格

[英]How to extract certain data cell from Listview / Gridview wpf

嗨,请记住,我是WPF新手,我使用的是一个返回gridlist[]WebService ,它会自动填充Gridview 这是WebService

C#:

WebService.Contacts Contact = new WebService.Contacts();
grdGetGroup.ItemsSource = Contact.GetGroups(Username, Password);

这是我的XAML

<ListView x:Name="grdGetGroup"
          Margin="560,34,128,48"
          FontSize="13"
          BorderBrush="#FFF01F1F"
          Foreground="#FFF01F1F"
          SelectedIndex="1"
          FontFamily="/WPF Working Experimenet;component/Font/#B Nazanin">
    <ListView.View>
        <GridView>
            <GridViewColumn x:Name="GridID"
                            Header="ID"
                            Width="50"
                            DisplayMemberBinding="{Binding GroupID}"
                            FrameworkElement.FlowDirection="RightToLeft" />
            <GridViewColumn Header="Group Name"
                            Width="85
                                                            "
                            DisplayMemberBinding="{Binding GroupName}"
                            FrameworkElement.FlowDirection="RightToLeft" />
            <GridViewColumn Header="Numbers"
                            Width="60"
                            DisplayMemberBinding="{Binding ContactCount}"
                            FrameworkElement.FlowDirection="RightToLeft" />
            <GridViewColumn Header="Access"
                            Width="60"
                            DisplayMemberBinding="{Binding ShowToChild}"
                            FrameworkElement.FlowDirection="RightToLeft" />
            <GridViewColumn Header="Description"
                            Width="150"
                            DisplayMemberBinding="{Binding GroupDescription}"
                            FrameworkElement.FlowDirection="RightToLeft" />
            <GridViewColumn Header=""
                            Width="60"
                            FrameworkElement.FlowDirection="RightToLeft">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <Button x:Name="btnChangeGroup"
                                    Margin="5"
                                    Content="Change"
                                    Cursor="Hand"
                                    Click="btnChangeGroup_Click">
                                <Button.Template>
                                    <ControlTemplate TargetType="Button">
                                        <TextBlock TextDecorations="Underline">
                                                                            <ContentPresenter /></TextBlock>
                                    </ControlTemplate>
                                </Button.Template>
                                <Button.Style>
                                    <Style TargetType="Button">
                                        <Setter Property="Foreground"
                                                Value="Black" />
                                        <Style.Triggers>
                                            <Trigger Property="IsMouseOver"
                                                     Value="true">
                                                <Setter Property="Foreground"
                                                        Value="Red" />
                                            </Trigger>
                                        </Style.Triggers>
                                    </Style>
                                </Button.Style>
                            </Button>
                        </StackPanel>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Header=""
                            Width="60"
                            FrameworkElement.FlowDirection="RightToLeft">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <Button x:Name="btnRemoveGroup"
                                    Margin="5"
                                    Content="Remove"
                                    Cursor="Hand"
                                    Click="btnRemoveGroup_Click">
                                <Button.Template>
                                    <ControlTemplate TargetType="Button">
                                        <TextBlock TextDecorations="Underline">
                                                                            <ContentPresenter /></TextBlock>
                                    </ControlTemplate>
                                </Button.Template>
                                <Button.Style>
                                    <Style TargetType="Button">
                                        <Setter Property="Foreground"
                                                Value="Black" />
                                        <Style.Triggers>
                                            <Trigger Property="IsMouseOver"
                                                     Value="true">
                                                <Setter Property="Foreground"
                                                        Value="#FFF01F1F" />
                                            </Trigger>
                                        </Style.Triggers>
                                    </Style>
                                </Button.Style>
                            </Button>
                        </StackPanel>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

如果您已经注意到,我也会自动为Gridview中的每一行设置2个button ,现在这是我的问题,如何在GridviewColumn x:Name"GridID"提取Data 并将其传递给同一行的Button Click Event (哪个method采用Data作为输入)

女武神

如果我理解/猜对了,那么每一行上都有一个gridList项。

如果我不理解/猜对了,每个gridList都有一个GroupID属性。
如果错了,请纠正我。

在WPF中,在DataGrid中,每行都有一个DataContext属性,该属性保存该行的数据:

void btnRemoveGroup_Click( Object sender, EventArgs args)
{
    var fxElt = sender as FrameworkElement;
    var lineData = fxElt.DataContext as gridlist;
    int groupID = lineData .GroupID;
}

告诉我它是否有效。 问候

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM