我正在尝试从listview
提取信息,但似乎无法选择特定的dataset
。当从中提取信息时,我总是得到整个内容但却永远不会只读取一组。
我将把行数据拉为:
chartViewList2.SelectedItem
我通过
将信息添加到列表视图中 private void getServices(string ComputerName)
{
chartListView2.Items.Clear();
ServiceController[] services = ServiceController.GetServices(ComputerName);
foreach (ServiceController service in services)
{
chartListView2.Items.Add(new { Service = service.ServiceName, Status = service.Status, Desc = service.DisplayName });
}
}
列表视图XML:
ListView x:Name="chartListView2" Margin="12,59,46,6"
GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler2">
<ListView.View>
<GridView>
<GridViewColumn Header="Service" DisplayMemberBinding="{Binding Service}" Width="100"/>
<GridViewColumn Header="Status" DisplayMemberBinding="{Binding Status}" Width="60"/>
<GridViewColumn Header="Desc" DisplayMemberBinding="{Binding Desc}" Width="190"/>
</GridView>
</ListView.View>
</ListView>
我想从中得到的就是服务名称字段。
任何帮助将不胜感激!
答案 0 :(得分:1)
这里的反思可能有所帮助。
var item = chartViewList2.SelectedItem;
var type = item.GetType();
var propertyInfo = type.GetProperty("Service");
var value = propertyInfo.GetValue(item, null);
然后,您将在'value'变量中获得Service字段的值。
由于.NET 4和动态关键字存在更短的方式:
dynamic item = chartViewList2.SelectedItem;
dynamic propertyValue = item.Service;
答案 1 :(得分:0)
如果您将ListView
绑定到List<TypedObject>
,则可以执行此操作:
var item = chartViewList2.SelectedItem as TypedObject
答案 2 :(得分:0)
您可以将ListView
SelectedvaluePath
设置为Service
并使用ListView
SelectedValue
绑定到您的模型或访问权限。
示例:
<ListView x:Name="chartListView2" SelectedValuePath="Service" SelectedValue="{Binding SelectedServiceName}" >