簡體   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