Wpf 从listview获取用户输入

Wpf 从listview获取用户输入,wpf,Wpf,我创建了一个列表视图。我需要从listview中的文本框中获取用户的输入。当用户单击“提交”按钮时,listview中的用户输入将显示在消息框中。如何从listview中的文本框中获取用户输入 <ListView x:Name="lstvQualification" Height="96" Margin="10,6,14,0" VerticalAlignment="Top"> <ListView.V

我创建了一个列表视图。我需要从listview中的文本框中获取用户的输入。当用户单击“提交”按钮时,listview中的用户输入将显示在消息框中。如何从listview中的文本框中获取用户输入

<ListView x:Name="lstvQualification"
            Height="96"
            Margin="10,6,14,0"
            VerticalAlignment="Top">
    <ListView.View>
        <GridView>
            <GridViewColumn Width="249" Header="Education">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBox x:Name="txtEducation"
                                        Width="247"
                                        Text="{Binding education}" />
                        </StackPanel>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Width="253" Header="College/Institution">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBox x:Name="txtCollege"
                                        Width="251"
                                        Text="{Binding college}" />
                        </StackPanel>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Width="88" Header="Mark(%)">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBox x:Name="txtMark"
                                        Width="86"
                                        Text="{Binding mark}" />
                        </StackPanel>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Width="88" Header="Add">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Button x:Name="btnAddQualification"
                                    Click="btnAddQualification_Click"
                                    Content="Add"
                                    Style="{StaticResource NewImg}" />
                        </StackPanel>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

<Button Content="Submit" x:name="submit" />


您已经在单元格模板的任何地方使用了
{Binding…}
,默认情况下,这些绑定是双向的,因此任何用户输入都会/应该自动传递给底层数据对象。但是,我没有在
ListView.ItemsSource
属性上看到任何绑定,所以很可能您忘记准备数据对象了。创建一个dataitems集合,将它们绑定到ItemsSource,让ListView显示它们,带有绑定的celltemplates应该更新dataitems的属性,而无需您做额外的工作。按下
submit
时,只需检查数据项集合,输入的所有数据都应该已经存在(假设您正确制作了所有模型和绑定)。

这可能是代码更改正常工作的示例:

<ListView x:Name="myListView" 
                  HorizontalAlignment="Stretch" 
                  ItemsSource="{Binding Source={StaticResource myCollectionViewSource},XPath='Party',Mode=TwoWay}">

            <ListView.View>
                <GridView>
                    <GridViewColumn Width="100" DisplayMemberBinding="{Binding XPath='Contact'}" Header="Contact"/>
                    <GridViewColumn DisplayMemberBinding="{Binding XPath='Qty'}" Header="Q"/>
                    <GridViewColumn DisplayMemberBinding="{Binding XPath='Amount'}" Header="Amt"/>
                    <GridViewColumn x:Name="tbTot" Header="Tot">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <DockPanel>
                                    <TextBox LostFocus="TextBox_LostFocus" Width="100" Text="{Binding XPath='Text'}" />
                                </DockPanel>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                </GridView>
            </ListView.View>    
        </ListView>


给出了一个例子plz@ShahidNeermunda:-请参阅“下载示例”链接。。请搜索一下,还有很多其他的例子和想法。这完全取决于你希望它如何完成和表现。你有很多不必要的堆叠面板。如果您的DataTemplate中只有一个项,则不需要在其周围包装容器。您可以安全地删除它们。作为一般样式指针,“education”、“college”和“mark”都是传递到ListView的对象的属性。这些应该资本化。