0

我正在尝试从我的信息中提取信息,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>

我想从中得到的只是服务名称字段。

任何帮助将不胜感激!

4

3 回答 3

1

反思在这里可能会有所帮助。

var item = chartViewList2.SelectedItem;
var type = item.GetType();
var propertyInfo = type.GetProperty("Service");
var value = propertyInfo.GetValue(item, null);

然后,您将在“值”变量中获得服务字段的值。

由于 .NET 4 和动态关键字甚至更短的方式存在:

dynamic item = chartViewList2.SelectedItem;
dynamic propertyValue = item.Service;
于 2013-02-21T23:46:20.630 回答
0

如果您将您的绑定ListView到 aList<TypedObject>那么您可以这样做:

var item = chartViewList2.SelectedItem as TypedObject
于 2013-02-22T00:01:30.710 回答
0

您可以设置并绑定ListView SelectedvaluePathService您的模型或使用ListView SelectedValue.

例子:

   <ListView x:Name="chartListView2" SelectedValuePath="Service" SelectedValue="{Binding SelectedServiceName}" >
于 2013-02-22T00:02:39.313 回答