我需要显示所有进程,即:ListView中的进程名称,ID和优先级
我尝试过:
public Process[] processes;
public string[] processesss;
public MainWindow() {
InitializeComponent();
processes = Process.GetProcesses();
ProcessInfo.ItemsSource = processes;
}
XAML:
<ListView Name="ProcessInfo">
<ListView.View>
<GridView>
<GridViewColumn Header="Process Name" Width="100" DisplayMemberBinding="{ProcessName}"/>
<GridViewColumn Header="Process ID" Width="100" DisplayMemberBinding="{ID}"/>
<GridViewColumn Header="Status" Width="70"/>
</GridView>
</ListView.View>
</ListView>
答案 0 :(得分:1)
尝试
InitializeComponent();
processes = Process.GetProcesses();
List<processlist> processlist = new List<processlist>();
foreach (Process item in processes)
{
processlist.Add(new processlist() { id = item.Id, name = item.ProcessName });
}
ProcessInfo.ItemsSource = processlist;
并添加此类
public class processlist
{
public int id { get; set; }
public string name { get; set; }
}
WPF用户界面
<Grid >
<ListView Margin="10" Name="ProcessInfo">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding name}" />
<GridViewColumn Header="id" Width="50" DisplayMemberBinding="{Binding id}" />
</GridView>
</ListView.View>
</ListView>
</Grid>
答案 1 :(得分:0)
您在正确的轨道上。只要确保您的UI元素具有正确的绑定信息即可从ItemsSource
中选择属性。如果将ListView
替换为DataGrid
并将其AutoGenerateColumns
设置为True
,对您来说可能会容易一些。这将自动开始在网格中显示您的过程。
另一方面,您可以使用ListView
甚至是ListBox
来实现目的,但是随后您必须为控件设置ItemTemplate
,这是一个广泛的主题本身。
答案 2 :(得分:-1)
以下代码使用Process.GetProcesses()
获取所有正在运行的进程,并检查每个进程。然后添加到2列listview中。
进程名称:process.ProcessName
进程ID :process.Id
public Process[] processes = Process.GetProcesses();
public Form1()
{
InitializeComponent();
foreach (Process process in processes)
{
listView1.Items.Add("Process: {0} ID: { 1} ", process.ProcessName, process.Id);
}
}