这是我想要实现的。我使用ListView构建了一个视图,并将ListView的ItemSource与XML文件绑定在一起,以便将xml内容显示为listview Items.Also我在ListView中提供了GridView列为每个xml内容添加复选框和文本框。
以下是xaml代码。
<Window.Resources>
<!--XML Data Source-->
<XmlDataProvider x:Key="InstrumentList" Source="Instrumentlist.xml"/>
</Window.Resources>
<Grid>
<ListView Height="153"
HorizontalAlignment="Left"
Name="listView1"
VerticalAlignment="Top"
Width="503"
ItemsSource="{Binding Source={StaticResource InstrumentList}, XPath=instrument/instruments}">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn x:Name="g1" >
<GridViewColumn.HeaderTemplate>
<DataTemplate >
<CheckBox x:Name="checkall" />
</DataTemplate>
</GridViewColumn.HeaderTemplate>
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="False"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Instrref" />
<GridViewColumn Width="120" Header="OrderLimit">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Name="txt_OrderLimit" Width="100"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Width="120" Header="ValueLimit">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Name="txt_ValueLimit" Width="100"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
<Button x:Name="button" Content="Submit" HorizontalAlignment="Left" Margin="0,174,0,0" VerticalAlignment="Top" Width="194" Click="button_Click"/>
</Grid>
</Window>
上面我们在GridView datatemplate中有复选框和两个文本框。当我对复选框进行多次检查时,我想要检索xml数据内容以及文本框内容,以便存储在一些有用的资源中,以便我以后可以访问它。 / p>
XML文件内容:
<?xml version="1.0" encoding="utf-8" ?>
<instrument>
<instruments>
<instrument_reference>NIFTY12SEP8700CE</instrument_reference>
</instruments>
<instruments>
<instrument_reference>NIFTY12SEP8600CE</instrument_reference>
</instruments>
<instruments>
<instrument_reference>NIFTY12SEP8900CE</instrument_reference>
</instruments>
<instruments>
<instrument_reference>NIFTY12SEP9000CE</instrument_reference>
</instruments>
<instruments>
<instrument_reference>NIFTY12SEP9100CE</instrument_reference>
</instruments>
<instruments>
<instrument_reference>NIFTY12SEP9200CE</instrument_reference>
</instruments>
</instrument>
正如您可以看到视图在提供的屏幕截图中的样子。我想对复选框进行多次检查,并为文本框提供输入,这样当我点击提交按钮时,在buttonn点击事件我应该能得到-INSTRUMENT REF,TEXTBOX-ORDERLIMIT,TEXTBOX-VALUELIMIT值存储在数据表,列表或任何方便的资源中以供以后使用。
请帮助我如何访问这些元素值。
答案 0 :(得分:1)
首先在checkAll
上添加一个事件处理程序,相应地设置它,并为您的GridView
命名。类似的东西:
<GridView x:Name="gvMyGridView">
//EVERYTHING ELSE
</GridView>
private void checkAll_Checked(object sender, RoutedEventArgs e)
{
if (checkAll.IsChecked == true)
{
foreach (GridViewColumn gvc in gvMyGridView.Children)
{
foreach (CellTemplate ct in gvc)
{
foreach (Checkbox cb in ct)
{
cb.IsChecked = true;
}
}
}
}
}
然后你可以冲洗并重复一遍,从文本框中获取字符串值并将它们分配给List<string>
,如:
private void button_Clicked(object sender, RoutedEventArgs e)
{
List<string> lstContent = new List<string>();
foreach (GridViewColumn gvc in gvMyGridView.Children)
{
foreach (CellTemplate ct in gvc)
{
foreach (Checkbox cb in ct)
{
if (cb.IsChecked == true)
lstContent.Add(/*Corresponding Text Box*/.Content.ToString();
}
}
}
}
希望有所帮助。让我知道会发生什么,如果你需要更多的帮助,我会做我能做的事情