ソースを参照

WPF的DataGrid排序问题

yuzhengyang 8 年 前
コミット
d2ceded893
28 ファイル変更176 行追加6 行削除
  1. 4 0
      Fork.Net/Oreo.PCMonitor/FodyWeavers.xml
  2. 19 0
      Fork.Net/Oreo.PCMonitor/Oreo.PCMonitor.csproj
  3. 6 6
      Fork.Net/Oreo.PCMonitor/Views/NetDetailsWindow.xaml
  4. 1 0
      Fork.Net/Oreo.PCMonitor/Views/NetDetailsWindow.xaml.cs
  5. 5 0
      Fork.Net/Oreo.PCMonitor/packages.config
  6. BIN
      Fork.Net/packages/Costura.Fody.1.6.2/Costura.Fody.1.6.2.nupkg
  7. BIN
      Fork.Net/packages/Costura.Fody.1.6.2/Costura.Fody.dll
  8. BIN
      Fork.Net/packages/Costura.Fody.1.6.2/Costura.Tasks.dll
  9. BIN
      Fork.Net/packages/Costura.Fody.1.6.2/lib/dotnet/Costura.dll
  10. BIN
      Fork.Net/packages/Costura.Fody.1.6.2/lib/portable-net+sl+win+wpa+wp/Costura.dll
  11. 94 0
      Fork.Net/packages/Costura.Fody.1.6.2/tools/install.ps1
  12. 47 0
      Fork.Net/packages/Costura.Fody.1.6.2/tools/uninstall.ps1
  13. BIN
      Fork.Net/packages/Fody.2.0.0/Fody.2.0.0.nupkg
  14. BIN
      Fork.Net/packages/Fody.2.0.0/Fody.dll
  15. BIN
      Fork.Net/packages/Fody.2.0.0/FodyCommon.dll
  16. BIN
      Fork.Net/packages/Fody.2.0.0/FodyIsolated.dll
  17. BIN
      Fork.Net/packages/Fody.2.0.0/Mono.Cecil.Pdb.dll
  18. BIN
      Fork.Net/packages/Fody.2.0.0/Mono.Cecil.dll
  19. 0 0
      Fork.Net/packages/Fody.2.1.0/Content/FodyWeavers.xml
  20. BIN
      Fork.Net/packages/Fody.2.1.0/Fody.2.1.0.nupkg
  21. BIN
      Fork.Net/packages/Fody.2.1.0/Fody.dll
  22. BIN
      Fork.Net/packages/Fody.2.1.0/FodyCommon.dll
  23. BIN
      Fork.Net/packages/Fody.2.1.0/FodyIsolated.dll
  24. BIN
      Fork.Net/packages/Fody.2.0.0/Mono.Cecil.Mdb.dll
  25. BIN
      Fork.Net/packages/Fody.2.1.0/Mono.Cecil.Pdb.dll
  26. BIN
      Fork.Net/packages/Fody.2.0.0/Mono.Cecil.Rocks.dll
  27. BIN
      Fork.Net/packages/Fody.2.1.0/Mono.Cecil.dll
  28. 0 0
      Fork.Net/packages/Fody.2.1.0/Tools/install.ps1

+ 4 - 0
Fork.Net/Oreo.PCMonitor/FodyWeavers.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<Weavers>
+  <Costura />
+</Weavers>

+ 19 - 0
Fork.Net/Oreo.PCMonitor/Oreo.PCMonitor.csproj

@@ -13,6 +13,8 @@
     <FileAlignment>512</FileAlignment>
     <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <WarningLevel>4</WarningLevel>
+    <NuGetPackageImportStamp>
+    </NuGetPackageImportStamp>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <PlatformTarget>AnyCPU</PlatformTarget>
@@ -34,6 +36,10 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="Costura">
+      <HintPath>..\packages\Costura.Fody.1.6.2\lib\portable-net+sl+win+wpa+wp\Costura.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Data" />
     <Reference Include="System.Drawing" />
@@ -99,6 +105,7 @@
       <Generator>ResXFileCodeGenerator</Generator>
       <LastGenOutput>Resources.Designer.cs</LastGenOutput>
     </EmbeddedResource>
+    <None Include="packages.config" />
     <None Include="Properties\Settings.settings">
       <Generator>SettingsSingleFileGenerator</Generator>
       <LastGenOutput>Settings.Designer.cs</LastGenOutput>
@@ -111,7 +118,19 @@
       <Name>Y.Utils</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <None Include="FodyWeavers.xml" />
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+    <PropertyGroup>
+      <ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
+    </PropertyGroup>
+    <Error Condition="!Exists('..\packages\Costura.Fody.1.6.2\build\portable-net+sl+win+wpa+wp\Costura.Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Costura.Fody.1.6.2\build\portable-net+sl+win+wpa+wp\Costura.Fody.targets'))" />
+    <Error Condition="!Exists('..\packages\Fody.2.1.0\build\portable-net+sl+win+wpa+wp\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Fody.2.1.0\build\portable-net+sl+win+wpa+wp\Fody.targets'))" />
+  </Target>
+  <Import Project="..\packages\Costura.Fody.1.6.2\build\portable-net+sl+win+wpa+wp\Costura.Fody.targets" Condition="Exists('..\packages\Costura.Fody.1.6.2\build\portable-net+sl+win+wpa+wp\Costura.Fody.targets')" />
+  <Import Project="..\packages\Fody.2.1.0\build\portable-net+sl+win+wpa+wp\Fody.targets" Condition="Exists('..\packages\Fody.2.1.0\build\portable-net+sl+win+wpa+wp\Fody.targets')" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
   <Target Name="BeforeBuild">

+ 6 - 6
Fork.Net/Oreo.PCMonitor/Views/NetDetailsWindow.xaml

@@ -12,14 +12,14 @@
         <TabControl x:Name="tabControl" HorizontalAlignment="Left" Height="336" Margin="10,73,0,0" VerticalAlignment="Top" Width="622">
             <TabItem Header="程序网速">
                 <Grid Background="#FFE5E5E5">
-                    <DataGrid x:Name="dataGrid" HorizontalAlignment="Left" VerticalAlignment="Top" Height="307" Width="616" ColumnWidth="SizeToHeader" ItemsSource="{Binding ObNetPro}">
+                    <DataGrid x:Name="dataGrid" HorizontalAlignment="Left" VerticalAlignment="Top" Height="307" Width="616" ColumnWidth="SizeToHeader" ItemsSource="{Binding ObNetPro}" AutoGenerateColumns="False">
                         <DataGrid.Columns>
                             <DataGridTextColumn Binding="{Binding ProcessName}" ClipboardContentBinding="{x:Null}" Header="名称"/>
-                            <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="下载速度"/>
-                            <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="上传速度"/>
-                            <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="已下载流量"/>
-                            <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="已上传流量"/>
-                            <DataGridTextColumn Binding="{x:Null}" ClipboardContentBinding="{x:Null}" Header="连接数"/>
+                            <DataGridTextColumn Binding="{Binding DownloadData}" ClipboardContentBinding="{x:Null}" Header="下载速度"/>
+                            <DataGridTextColumn Binding="{Binding UploadData}" ClipboardContentBinding="{x:Null}" Header="上传速度"/>
+                            <DataGridTextColumn Binding="{Binding DownloadData}" ClipboardContentBinding="{x:Null}" Header="已下载流量"/>
+                            <DataGridTextColumn Binding="{Binding UploadDataCount}" ClipboardContentBinding="{x:Null}" Header="已上传流量"/>
+                            <DataGridTextColumn Binding="{Binding ConnectCount}" ClipboardContentBinding="{x:Null}" Header="连接数"/>
                         </DataGrid.Columns>
                     </DataGrid>
                 </Grid>

+ 1 - 0
Fork.Net/Oreo.PCMonitor/Views/NetDetailsWindow.xaml.cs

@@ -73,6 +73,7 @@ namespace Oreo.PCMonitor.Views
                 }
             });
         }
+        public void Order() { }
         private void UIDgProcessDetailUpdate()
         {
             Dispatcher.Invoke(new Action(() =>

+ 5 - 0
Fork.Net/Oreo.PCMonitor/packages.config

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Costura.Fody" version="1.6.2" targetFramework="net40" developmentDependency="true" />
+  <package id="Fody" version="2.1.0" targetFramework="net40" developmentDependency="true" />
+</packages>

BIN
Fork.Net/packages/Costura.Fody.1.6.2/Costura.Fody.1.6.2.nupkg


BIN
Fork.Net/packages/Costura.Fody.1.6.2/Costura.Fody.dll


BIN
Fork.Net/packages/Costura.Fody.1.6.2/Costura.Tasks.dll


BIN
Fork.Net/packages/Costura.Fody.1.6.2/lib/dotnet/Costura.dll


BIN
Fork.Net/packages/Costura.Fody.1.6.2/lib/portable-net+sl+win+wpa+wp/Costura.dll


+ 94 - 0
Fork.Net/packages/Costura.Fody.1.6.2/tools/install.ps1

@@ -0,0 +1,94 @@
+param($installPath, $toolsPath, $package, $project)
+
+
+function RemoveForceProjectLevelHack($project)
+{
+    Write-Host "RemoveForceProjectLevelHack"
+	Foreach ($item in $project.ProjectItems)
+	{
+		if ($item.Name -eq "Fody_ToBeDeleted.txt")
+		{
+			$item.Delete()
+		}
+	}
+}
+
+function FlushVariables()
+{
+    Write-Host "Flushing environment variables"
+    $env:FodyLastProjectPath = ""
+    $env:FodyLastWeaverName = ""
+    $env:FodyLastXmlContents = ""
+}
+
+function Update-FodyConfig($addinName, $project)
+{
+	Write-Host "Update-FodyConfig"
+    $fodyWeaversPath = [System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($project.FullName), "FodyWeavers.xml")
+
+	$FodyLastProjectPath = $env:FodyLastProjectPath
+	$FodyLastWeaverName = $env:FodyLastWeaverName
+	$FodyLastXmlContents = $env:FodyLastXmlContents
+
+	if (
+		($FodyLastProjectPath -eq $project.FullName) -and
+		($FodyLastWeaverName -eq $addinName))
+	{
+        Write-Host "Upgrade detected. Restoring content for $addinName"
+		[System.IO.File]::WriteAllText($fodyWeaversPath, $FodyLastXmlContents)
+        FlushVariables
+		return
+	}
+
+    FlushVariables
+
+    $xml = [xml](get-content $fodyWeaversPath)
+
+    $weavers = $xml["Weavers"]
+    $node = $weavers.SelectSingleNode($addinName)
+
+    if (-not $node)
+    {
+        Write-Host "Appending node"
+        $newNode = $xml.CreateElement($addinName)
+        $weavers.AppendChild($newNode)
+    }
+
+    $xml.Save($fodyWeaversPath)
+}
+
+function Fix-ReferencesCopyLocal($package, $project)
+{
+    Write-Host "Fix-ReferencesCopyLocal $($package.Id)"
+    $asms = $package.AssemblyReferences | %{$_.Name}
+
+    foreach ($reference in $project.Object.References)
+    {
+        if ($asms -contains $reference.Name + ".dll")
+        {
+            if($reference.CopyLocal -eq $true)
+            {
+                $reference.CopyLocal = $false;
+            }
+        }
+    }
+}
+
+function UnlockWeaversXml($project)
+{
+    $fodyWeaversProjectItem = $project.ProjectItems.Item("FodyWeavers.xml");
+    if ($fodyWeaversProjectItem)
+    {
+        $fodyWeaversProjectItem.Open("{7651A701-06E5-11D1-8EBD-00A0C90F26EA}")
+        $fodyWeaversProjectItem.Save()
+		$fodyWeaversProjectItem.Document.Close()
+    }
+}
+
+UnlockWeaversXml($project)
+
+RemoveForceProjectLevelHack $project
+
+Update-FodyConfig $package.Id.Replace(".Fody", "") $project
+
+Fix-ReferencesCopyLocal $package $project

+ 47 - 0
Fork.Net/packages/Costura.Fody.1.6.2/tools/uninstall.ps1

@@ -0,0 +1,47 @@
+param($installPath, $toolsPath, $package, $project)
+
+
+function Update-FodyConfig($addinName, $project)
+{
+    $fodyWeaversPath = [System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName($project.FullName), "FodyWeavers.xml")
+
+    if (!(Test-Path ($fodyWeaversPath)))
+    {
+        return
+    }
+
+    Write-Host "Caching variables for possible update"
+	$env:FodyLastProjectPath = $project.FullName
+	$env:FodyLastWeaverName = $addinName
+	$env:FodyLastXmlContents = [IO.File]::ReadAllText($fodyWeaversPath)
+
+
+    $xml = [xml](get-content $fodyWeaversPath)
+
+    $weavers = $xml["Weavers"]
+    $node = $weavers.SelectSingleNode($addinName)
+
+    if ($node)
+    {
+        Write-Host "Removing node from FodyWeavers.xml"
+        $weavers.RemoveChild($node)
+    }
+
+    $xml.Save($fodyWeaversPath)
+}
+
+
+function UnlockWeaversXml($project)
+{
+    $fodyWeaversProjectItem = $project.ProjectItems.Item("FodyWeavers.xml");
+    if ($fodyWeaversProjectItem)
+    {
+        $fodyWeaversProjectItem.Open("{7651A701-06E5-11D1-8EBD-00A0C90F26EA}")
+        $fodyWeaversProjectItem.Save()
+		$fodyWeaversProjectItem.Document.Close()
+    }
+}
+
+UnlockWeaversXml($project)
+
+Update-FodyConfig $package.Id.Replace(".Fody", "") $project

BIN
Fork.Net/packages/Fody.2.0.0/Fody.2.0.0.nupkg


BIN
Fork.Net/packages/Fody.2.0.0/Fody.dll


BIN
Fork.Net/packages/Fody.2.0.0/FodyCommon.dll


BIN
Fork.Net/packages/Fody.2.0.0/FodyIsolated.dll


BIN
Fork.Net/packages/Fody.2.0.0/Mono.Cecil.Pdb.dll


BIN
Fork.Net/packages/Fody.2.0.0/Mono.Cecil.dll


Fork.Net/packages/Fody.2.0.0/Content/FodyWeavers.xml → Fork.Net/packages/Fody.2.1.0/Content/FodyWeavers.xml


BIN
Fork.Net/packages/Fody.2.1.0/Fody.2.1.0.nupkg


BIN
Fork.Net/packages/Fody.2.1.0/Fody.dll


BIN
Fork.Net/packages/Fody.2.1.0/FodyCommon.dll


BIN
Fork.Net/packages/Fody.2.1.0/FodyIsolated.dll


BIN
Fork.Net/packages/Fody.2.0.0/Mono.Cecil.Mdb.dll


BIN
Fork.Net/packages/Fody.2.1.0/Mono.Cecil.Pdb.dll


BIN
Fork.Net/packages/Fody.2.0.0/Mono.Cecil.Rocks.dll


BIN
Fork.Net/packages/Fody.2.1.0/Mono.Cecil.dll


Fork.Net/packages/Fody.2.0.0/Tools/install.ps1 → Fork.Net/packages/Fody.2.1.0/Tools/install.ps1