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