小编Sha*_*huk的帖子

如何从 GridViewColumn 标题获取点击事件?

我可以从标题下的所有内容获取事件,但无法通过单击标题获取事件。这是 XAML;请注意该事件是针对整个 ListView 的,因此它应该在单击任何内容时激活:

<ListView x:Name="myListView" MouseLeftButtonUp="myListView_MouseLeftButtonUp" Margin="10">
    <ListView.View>
        <GridView>
            <GridView.Columns>
                <GridViewColumn Header="File Path"
                                DisplayMemberBinding="{Binding Path=Path}"  />
                <GridViewColumn Header="File Size"
                                DisplayMemberBinding="{Binding Path=Size}" />
            </GridView.Columns>
        </GridView>
    </ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)

而且事件本身非常简单。只是告诉我发生了一些事情:

    private void myListView_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
        string output = sender.ToString();
        MessageBox.Show(output);
    } 
Run Code Online (Sandbox Code Playgroud)

单击标题下的任何位置都可以完美响应:
“System.Windows.Controls.ListView Items.Count:0”

单击“文件路径”标题什么也不做。单击“文件大小”标题什么也不做。

MSDN 说:https ://msdn.microsoft.com/en-us/library/vstudio/ms745786( v= vs.100)
.aspx

<ListView x:Name='lv' Height="150" HorizontalAlignment="Center" VerticalAlignment="Center" 
GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler">
Run Code Online (Sandbox Code Playgroud)

Visual Studio 说没有 GridViewColumnHeader 这样的东西,所以 MSDN 上的代码都不起作用。

c# wpf

5
推荐指数
1
解决办法
3361
查看次数

等待多个进程完成

我希望我的程序等待所有进程完成,然后删除一些临时文件.我已经有一段代码可以在一次处理一个进程时执行此操作,但我无法使其适用于多个进程.

我将首先展示有效的代码.此代码正确运行进程,等待它完成,然后删除临时文件:

foreach (string script in scriptList)
{
     ProcessStartInfo myProcess = new ProcessStartInfo();
     myProcess.FileName = accoreconsolePath;
     myProcess.Arguments = "/s \"" + script + "\"";
     myProcess.CreateNoWindow = true;         
     Process myWait = Process.Start(myProcess);
     myWait.WaitForExit();

     File.Delete(script);            
}  
Run Code Online (Sandbox Code Playgroud)

以上内容整齐地包含在foreach循环中.我无法工作的是这样的并行版本,其中wait语句在foreach循环之外:

  Process myWait;
  foreach (string script in scriptList)
  {
     ProcessStartInfo myProcess = new ProcessStartInfo();
     myProcess.FileName = accoreconsolePath;
     myProcess.Arguments = "/s \"" + script + "\"";
     myProcess.CreateNoWindow = true;
     myWait = Process.Start(myProcess);
  }
  myWait.WaitForExit();                             //error: use of unassigned local variable "myWait" …
Run Code Online (Sandbox Code Playgroud)

c# parallel-processing process wait

2
推荐指数
2
解决办法
2800
查看次数

标签 统计

c# ×2

parallel-processing ×1

process ×1

wait ×1

wpf ×1