小编Dou*_*ell的帖子

WPF 应用程序无法启动并收到 XAMLParseException

我编写了一个应用程序,它在我的开发设备和我的 Win 7/8/10 虚拟机上运行良好,但在我尝试过的每台其他计算机(win 7/8/10)上都崩溃了。启动应用程序时,几乎就像什么也没发生一样。

在事件查看器中,例外是XamlParseException。

  • 我正在使用 VS 2013 Update 5 构建它
  • 该应用程序面向 .NET 4.5
  • 我已经在其他设备上验证了 .NET 4.5

事件查看器发现了这一点(v4.0.30319即使我的设备和所有设备都安装了 .NET 4.5+):

Application: HelpScoutMetrics.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Windows.Markup.XamlParseException
Stack:
   at System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri)
   at System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri)
   at System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean)
   at System.Windows.Application.LoadComponent(System.Object, System.Uri)
   at HelpScoutMetrics.MainWindow.InitializeComponent()
   at HelpScoutMetrics.MainWindow..ctor()
   at HelpScoutMetrics.App.OnStartup(System.Windows.StartupEventArgs)
   at System.Windows.Application.<.ctor>b__1(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf

5
推荐指数
0
解决办法
2504
查看次数

如何从Google Apps脚本项目属性中存储和检索对象?

我想在google apps脚本属性中存储对象.

让我们说我有一个对象: var myObject = {var1:"stuffval", var2:"stuff2val"};

如果我通过scriptProperties.setProperty("myProperty", myObject );属性将其存储为属性,则存储为字符串{var1=stuffval, var2=stuff2val}.

如何在Google Apps脚本中从该字符串中检索我的对象?

javascript google-apps-script

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

如何使用 InvokeCommandAction 调用我的方法并传入参数?

我一直在试图弄清楚如何从Loaded=""事件中传递参数。我在这里问了一个问题:我将如何在 Loaded="" 上传递参数?并被引导到 InvokeCommandAction 的方向。

问题是我无法弄清楚如何实际使用 InvokeCommandAction 来调用我的方法。我的 XAML:

        <Expander x:Name="Greeting_And_Opening_Expander" ExpandDirection="Down" IsExpanded="True" FontSize="14" FontWeight="Bold" Margin="5" BorderThickness="1" BorderBrush="#FF3E3D3D">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="Loaded">
                    <i:InvokeCommandAction Command="{Binding ExpanderLoaded}"
                                           CommandParameter="x:Static local:Sections.Opening"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
Run Code Online (Sandbox Code Playgroud)

我ExpanderLoaded在后面的代码中命名了一个方法,如下所示:

    private void ExpanderLoaded(object sender, RoutedEventArgs e, Sections section)
    {
        //Do Stuff
    }
Run Code Online (Sandbox Code Playgroud)

以及相同命名空间下的 Enum:

public enum Sections
{
    Default = 0,
    Opening = 1,
    Verify = 2
}
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能使用我上面发布的 XAML 调用我的方法?我对 WPF 很陌生,所以如果我最终问了一些似乎很愚蠢的问题,请试着忍受我。我浏览过 stackoverflow 并阅读了其他类似的问题,但一直无法提供足够的信息来继续我自己的工作。

c# wpf events xaml parameter-passing

4
推荐指数
1
解决办法
7697
查看次数

如何在表体中使用ng-repeat来包含多行?

我正试图从jsRender转换到AngularJs,似乎无法弄清楚如何生成多个表行ng-repeat.

我需要为每个ng-repeat生成两个表行,这些行彼此相关.第二行实际上是一个隐藏的行,像手风琴一样展开.这与renderJs完美配合:

使用renderJs:

<table>
  <thead>
    <tr>
      <th>Stuff</th>
      <th>Stuff2</th>
    </tr>
  </thead>
  <tbody>
    {{for myArray}} <!-- Creates two rows per item in array -->
    <tr>
      <td>{{data}}</td>
      <td>{{data2}}</td>
    </tr>
    <tr class="special-row">
      <td>{{otherData}}</td>
      <td>{{otherData2}}</td>
    </tr>
    {{/for}}
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

使用AngularJs:

<table>
  <thead>
    <tr>
      <th>Stuff</th>
      <th>Stuff2</th>
    </tr>
  </thead>
  <tbody>
    <div ng-repeat="element in myArray"> <!-- This gets removed since it's not a valid element for a table body -->
      <tr>
        <td>{{element.data}}</td>
        <td>{{element.data2}}</td>
      </tr>
      <tr class="special-row">
        <td>{{element.otherData}}</td>
        <td>{{element.otherData2}}</td>
      </tr>
    </div>
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我不能把<div>我的桌子内部放在ng-repeat …

html javascript jsrender angularjs

4
推荐指数
1
解决办法
5481
查看次数

如何在VBA中引用和刷新Excel 2016中的QueryTable

我正在尝试刷新单元格更改的查询,但我无法弄清楚如何引用查询.

我的代码: Sheets("Roster Query").QueryTables(0).Refresh

只是错误:

运行时错误'1004':

应用程序定义或对象定义的错误

我有一个名为"名册过滤器"的工作表,其中包含我要刷新的查询表.如何获取QueryTable并刷新它?

编辑:还试过:

For Each qt In Sheets("Roster Query").QueryTables
    qt.Refresh
Next
Run Code Online (Sandbox Code Playgroud)

这不会出错,但查询不会刷新.

excel vba excel-vba excel-2016

4
推荐指数
1
解决办法
2万
查看次数

选择类的语义UI多级下拉菜单不会扩展

当我尝试将下拉列表与一起使用search selection并选择子类别时,它会自动展开,并且下拉列表中会出现一个小的滚动条。如果我不添加,search selection它似乎可以正常运行。

JSFiddle:https://jsfiddle.net/utqz406p/4/

我该如何解决这个问题?

编辑:这似乎也发生与selection类。

html javascript css jquery semantic-ui

3
推荐指数
1
解决办法
1288
查看次数

Linq JS 连接语法

我试图将日期和值数组连接到日期数组,而不过滤掉额外的日期。这里的LinqJS 参考对于我实际如何使用连接来说非常令人困惑。这里的问题也没有多大帮助。

编辑:

在此处加入文档:https://svschmidt.github.io/linqjs/Collection.html#Join

看来我需要帮助来解决如何使连接成为连接outer而不是inner连接,因此它包含空/未定义值。

假设我有两个数组:

数组1:

[
'2017-02-10',
'2017-02-11',
'2017-02-12',
'2017-02-13',
'2017-02-20',
'2017-02-21',
'2017-02-22',
'2017-02-23',
'2017-02-24',
'2017-02-25',
'2017-02-26',
'2017-02-27'
]
Run Code Online (Sandbox Code Playgroud)

数组2:

[
  { date: '2017-02-10', value:  5 },
  { date: '2017-02-12', value:  8 },
  { date: '2017-02-13', value: 13 },
  { date: '2017-02-21', value: 14 },
  { date: '2017-02-24', value: 11 },
  { date: '2017-02-27', value:  7 }
]
Run Code Online (Sandbox Code Playgroud)

我想加入他们,所以我得到这个结果(-for undefined):

[
'5',
-,
'8',
'13', …
Run Code Online (Sandbox Code Playgroud)

javascript linq arrays join left-join

3
推荐指数
1
解决办法
4726
查看次数

找到一组交叉点中的所有四边形

我想取一组线的所有交点,找到它们创建的所有凸四边形.我不确定是否有适合这种情况的算法,或者我需要循环创建自己的算法.

我有一系列线条和所有交叉点.

线和交叉点:

在此输入图像描述

示例四边形1:

在此输入图像描述

示例四边形2 在此输入图像描述

在这种情况下,我会提出8个四边形.

我怎样才能做到这一点?如果没有我可以为此实现的算法,我如何检查每个交叉点与其他交叉点以确定它们是否形成凸四边形?

language-agnostic theory math geometry

3
推荐指数
1
解决办法
436
查看次数

为什么每个循环输出 10?int不是值类型吗?

我浏览了一些 C# 示例并发现了以下内容:

using System;
using System.Collections.Generic;

namespace ConsoleApp1
{
    class Program
    {
        delegate void Printer();

        static void Main()
        {
            List<Printer> printers = new List<Printer>();

            for (int i = 0; i < 10; i++)
            {
                printers.Add(delegate { var d = i; Console.WriteLine(d); });
            }

            foreach (var printer in printers)
            {
                printer();
            }
            Console.ReadLine();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我期望它0通过输出9,因为 anint是一种值类型,d应该设置为i当时的任何值。

然而,这输出了10十倍。

为什么是这样?int 不是一个引用而是在委托内部吗?

注意:我并不是想在这里解决问题,只是以可重复应用的方式了解它是如何工作的。

编辑:我的困惑的例子

int i = …
Run Code Online (Sandbox Code Playgroud)

c# value-type reference-type

3
推荐指数
1
解决办法
2415
查看次数

.NET Core 中的 ConcurrentQueue.Count 非常慢

我使用 aConcurrentQueue将 I/O 绑定任务中的项目入队,并将它们从另一个任务中出队进行处理。当队列达到一定大小时,我停止将项目添加到队列中,以便处理可以跟上。为此,我检查了该ConcurrentQueue.Count属性。

问题在于该Count属性的行为似乎与列表或其他集合中的行为不同。它非常慢,队列越大,读取Count属性的速度就越慢。一个项目中有 20k 个项目,ConcurrentQueue几乎所有处理器时间都花在了该Count属性上。

粗略示例:

        while (reader.Read())
        {
            if(Queue.Count >= MaxQueueSize)
            {
                //Wait
            }
            //Do Stuff
        }
Run Code Online (Sandbox Code Playgroud)

运行性能分析器时,所有时间都花在System.Collections.Concurrent.CDSCollectionETWBCLProvicer.ctor().

这似乎只发生在 .NET Core 2 上,这不会发生在 .NET 4.6.2 中

.Net Core 有没有办法解决这个问题?

c# performance .net-core

3
推荐指数
1
解决办法
3738
查看次数