小编Vev*_*rke的帖子

将多个元素放置到WPF中的GroupBox中

我正在尝试制作一个带有几个(无线电)按钮的GroupBox.但在样本中,我正在使用复选框.

<GroupBox Header="Aðgerðir" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="270,0,0,178" Height="106" Width="176">
    <CheckBox Content="CheckBox" HorizontalAlignment="Left" VerticalAlignment="Top"/>
    <CheckBox Content="CheckBox" HorizontalAlignment="Left" VerticalAlignment="Bottom"/>
</GroupBox>
Run Code Online (Sandbox Code Playgroud)

以上不起作用,视觉工作室说"无效标记".

这在这里工作正常

<GroupBox Header="Aðgerðir" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="270,0,0,178" Height="106" Width="176">
    <CheckBox Content="CheckBox" HorizontalAlignment="Left" VerticalAlignment="Top"/>
</GroupBox>
Run Code Online (Sandbox Code Playgroud)

我不明白.如果我运行调试器,它说"内容只能设置一次",但删除复选框的内容部分似乎没有任何效果.

c# wpf groupbox radio-button

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

async/await上的MSDN示例 - 在await调用之后我不能到达断点吗?

在async/await上尝试MSDN的例子时,为什么我在await运算符之后无法达到断点?

private static void Main(string[] args)
{
    AccessTheWebAsync();
}

private async Task<int> AccessTheWebAsync()
{ 
    // You need to add a reference to System.Net.Http to declare client.
    HttpClient client = new HttpClient();

    // GetStringAsync returns a Task<string>. That means that when you await the
    // task you'll get a string (urlContents).
    Task<string> getStringTask = client.GetStringAsync("http://msdn.microsoft.com");

    // You can do work here that doesn't rely on the string from GetStringAsync.
    /*** not relevant here ***/
    //DoIndependentWork();

    // The await operator suspends AccessTheWebAsync. …
Run Code Online (Sandbox Code Playgroud)

c# async-await

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

有没有办法使用C#6的字符串插值与多行字符串?

有没有办法使用C#6的字符串插值多行字符串?

就像是

   string a = "1111";
   string s = @$"
         {a}    
    ";
Run Code Online (Sandbox Code Playgroud)

以上不起作用.

string-interpolation c#-6.0

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

如何使用EnvDTE列出当前解决方案中的所有项目?

我一直在遵循MSDN的Hello World指南来开发Visual Studio扩展(本文专门介绍如何将其创建为Visual Studio工具栏命令)。

我正在尝试列出当前/活动解决方案中包含的所有项目。

在为命令模板自动生成的代码中。

我尝试了EnvDTESolutionProjects属性,但显示零项目。

也有一个ActiveSolutionProjects属性,但它也显示一个空数组。

如何实现的?

PS:我尝试过DTE和DTE2接口,因为从文档中了解使用哪个版本会造成混淆。我得到了DTE2的空服务,所以我要使用DTE。

在此处输入图片说明

我的解决方案资源管理器看起来像:

在此处输入图片说明


更新:来自gitter / extendvs的 Bert Huijben 建议在VSSDK扩展性示例中找到以下内容-但这也不起作用(在构造函数和回调函数中都返回0元素):

private Hashtable GetLoadedControllableProjectsEnum()
{
    Hashtable mapHierarchies = new Hashtable();

    IVsSolution sol = (IVsSolution)this.ServiceProvider.GetService(typeof(SVsSolution));
    Guid rguidEnumOnlyThisType = new Guid();
    IEnumHierarchies ppenum = null;
    ErrorHandler.ThrowOnFailure(sol.GetProjectEnum((uint)__VSENUMPROJFLAGS.EPF_LOADEDINSOLUTION, ref rguidEnumOnlyThisType, out ppenum));

    IVsHierarchy[] rgelt = new IVsHierarchy[1];
    uint pceltFetched = 0;
    while (ppenum.Next(1, rgelt, out pceltFetched) == VSConstants.S_OK &&
           pceltFetched == 1)
    {
        IVsSccProject2 …
Run Code Online (Sandbox Code Playgroud)

c# envdte vsix visual-studio-extensions

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

有没有办法将 IEnumerable&lt;T&gt; 视为 params T[] 对象?

我想编写将 Sql Server 过程结果作为DataTable对象返回的通用代码。DataTable.Rows.Add()然后我编写了下面的代码,但是,我偶然发现了期望参数的问题params object[],而我必须传递的是IEnumerable<string>.

    public static DataTable GetProcedureResults(int id)
    {
        return GetQueryResultAsDataTable<MyProcedure_Result>(_sqlServerDB.MyProcedure(id));
    }

    private static DataTable GetQueryResultAsDataTable<T>(ObjectResult<T> objectResult)
    {
        DataTable resultAsDataTable = new DataTable("Result");
        var columns = typeof(T).GetProperties();
        foreach (var column in columns)
        {
            resultAsDataTable.Columns.Add(column.Name, typeof(string));
        }

        foreach (var resultRecord in objectResult)
        {
            var fields = resultRecord.GetType().GetProperties().Select(p => p.GetValue(resultRecord).ToString());
            resultAsDataTable.Rows.Add(fields);
        }

        return resultAsDataTable;
    }
Run Code Online (Sandbox Code Playgroud)

对于熟悉这个问题的人来说,你可能已经猜到我最后的数据表是这样的:

在此输入图像描述

这些值都被视为单个对象,因此都被插入到第一列中。

如果有的话,这里的解决方法是什么?我在其他帖子中读到,似乎 C#6 会解决这个问题,除此之外没有找到清晰简洁的解决方案。

c# parameters system.reflection

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

这个对象能够告诉它有多少属性不是null/whitespace/empty有什么问题?

我试图弄清楚为什么以下代码抛出StackOverflowException(我终于在SO中发布了StackoverflowException!).

调试似乎指出p.GetValue(this)正在生成进一步的调用.

究竟是什么触发了无限的调用链?是因为p.GetValue(this)最终返回当前对象的一个​​实例,因此就像构造一个新实例一样(并且在其构造中构造自身的每个对象都会导致Stackoverflow异常)?

我对以下代码的意图是让一个对象能够告诉它有多少属性具有null/space/empty值.

public class A
{
    public string S1 { get; set; }
    public string S2 { get; set; }

    public int NonInitializedFields
    {
        get
        {
            int nonNullFields = 0;

            var properties = this.GetType().GetProperties();
            foreach (var p in properties)
            {
                var value = p.GetValue(this);
                if (value == null || string.IsNullOrWhiteSpace(value.ToString()))
                    nonNullFields++;
            }

            return nonNullFields;
        }
    }
}

//the following throws a StackOverflowException (the construction line itself)
A a1 = new A1{ S1 = "aaa"};
Console.WriteLine(a1.NonInitializedFields);
Run Code Online (Sandbox Code Playgroud)

PS我的想法最初只涉及简单的字符串属性,没有别的,所以这种方法与其他类型可能出现的问题无关紧要.

c# constructor system.reflection

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

iTextSharp将包装的单元格内容提取到新行中 - 您如何识别给定的包装数据片段所属的列?

我正在使用iTextSharp从pdfs中提取数据.我偶然发现了以下问题所描述的问题:

我创建了一个示例excel文件来说明.这是它的样子: 在此输入图像描述

我将其转换为pdf,使用其中一个免费的在线转换器,生成一个类似的pdf(当我生成pdf时,我没有将样式应用于excel): 在此输入图像描述

现在,使用iTextSharp从pdf中提取数据,返回以下字符串作为提取的数据:

在此输入图像描述

如您所见,包裹的单元格数据会生成新行,其中每个包裹的数据由一个空格分隔.

问题:现在,如何确定给定的包装数据所属的列?如果只iTextSharp保留与列一样多的空格......

在我的示例中 - 如何识别111属于哪个列?


更新1:

只要字段有多个单词(即包含空格),就会出现类似的问题.例如,考虑上面示例的第1行:

说它看起来像

---A---  ---B---  ---C---  ---D---
aaaaaaa    bb b     cccc      
Run Code Online (Sandbox Code Playgroud)

iText将再次生成这个提取,如下所示:

aaaaaaa bb b cccc
Run Code Online (Sandbox Code Playgroud)

这里的问题相同,必须确定每列的边界.


更新2: 我正在使用的真实pdf文件的示例: 在此输入图像描述 这就是pdf数据的样子.

itextsharp pdf-extraction

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

Umbraco.Web.Models.DynamicPublishedContentList不包含Count的定义

我在一个Umbraco 7.0.3宏中得到错误,该宏遍历所有的孩子并且只返回一个列表.首先,我使用Umbraco后台来构建基本的导航和侧面菜单项.同时,一旦设置了本地环境,我就开始在本地工作了.

问题是,我使用后台进行导航构建的代码工作正常但如果项目是在VS2012 Ultimate版本中创建的,相同的代码不起作用,即使我只是从原始工作导航宏粘贴相同的代码.

我收到以下错误:'Umbraco.Web.Models.DynamicPublishedContentList'不包含'Any'的定义,表明页面列表是动态的.令我高兴的是,相同的代码适用于现有导航,那么为什么不使用新项目呢?在VS2012中是否有任何设置标记文件无法使用UTF8编辑器或无效的HTML?

我的问题是如何在剃须刀宏中找到计数或任何项目?我已经尝试了Enumerable items count和任何方法,但没有用.

有关如何查找项目数量的任何指示都会有所帮助.

我正在提供有关Paulo的请求的更多信息.在"startNode.Children.Where("Visible")上出错.Any()"行.以下是宏代码:

@inherits Umbraco.Web.Macros.PartialViewMacroPage
@*
    === Macro Parameters To Create ===
    Show:True   Alias:nodeId Name:Node ID    Type:Content Picker
*@
@if (Model.MacroParameters["startNodeID"] != null)
{
    @* Get the start node as a dynamic node *@
    var startNode = Umbraco.Content(Model.MacroParameters["startNodeID"]);

    if (startNode.Children.Where("Visible").Any())
    {
        <div class="container">
            <div class="row">
                @foreach (var page in startNode.Children.Where("Visible"))
                { 
                    <div class="col-sm-3 col-md-3">
                        <div class="thumbnail">
                            <img src="~/images/Tiles/300x200.jpg" alt="@page.Name">
                            <div class="caption">
                                <h3><a href="@page.Url">@page.Name</a></h3>
                                <p>@page.GetPropertyValue("summary").Substring(0, 100)</p>
                                <a href="@page.Url" class="btn btn-default">Read More</a>
                            </div>
                        </div>
                    </div> …
Run Code Online (Sandbox Code Playgroud)

c# macros razor visual-studio-2012 umbraco7

0
推荐指数
1
解决办法
6569
查看次数

如果没有正确初始化标识列,DbSet.Create()的目的是什么?

在使用中Entity Framework Database First,

为什么在我的任何DbContext Sets一个中发出Create方法会创建一个set实体的实例而不增加其Identity列?

考虑到我构建了我想要首先添加到给定集合的所有实体,并且最后只有一次,我将它们全部添加到DbContext.SaveChanges()- DbSet.Create()如果不是属性初始化标识列,那么真正使用的是什么?我可以简单地手动实例化我的DbSetasvar newEntity = new MyClass();

entity-framework dbset

0
推荐指数
1
解决办法
475
查看次数

在访问属性方面,.NET 7.0 中的 C# 性能比 .NET 6.0 中的性能差

我从 .NET 6.0 更改为 .NET 7.0,发现一些性能关键型任务所需的时间几乎是 .NET 6.0 的两倍(没有进行任何代码更改!)。

我能够得出一个简单的例子,它至少显示了一个有趣的效果:

using System;
using System.Collections.Generic;
using System.Diagnostics;

public readonly struct MyStruct {
  public int Parent { get; }
  public int Child { get; } 
  public MyStruct(int p, int c) {
    Parent = p;
    Child = c;
  }
}

static class MyProgram {
  
  static int Main(string[] args) {
    Stopwatch stopwatch = new Stopwatch();
    List<MyStruct> list = new() { new(1, 1)};
    stopwatch.Start();
    for (int j = 0; j < 500_000; ++j) {
      for …
Run Code Online (Sandbox Code Playgroud)

.net c# performance

0
推荐指数
1
解决办法
464
查看次数

Javascript提升和变量赋值(没有声明)

查看MDN对JavaScript,语法和类型部分的介绍 - 一篇内容如下:

声明变量

您可以通过三种方式声明变量:

  • 使用关键字var.例如,var x = 42.此语法可用于声明局部变量和全局变量.
  • 只需为其分配一个值即可.例如,x = 42.这总是声明一个全局变量.它会生成严格的JavaScript警告.你不应该使用这个变种.
  • 使用关键字let.例如,设y = 13.此语法可用于声明块范围局部变量.请参阅下面的变量范围

以下代码片段似乎适合"通过简单地为其赋值"方案,这意味着该变量应被视为全局变量.

(function(){
   console.log(myVar);
   //the following will throw a ReferenceException error
   //myVar = 10;

   //the following will not, and I can understand it following the defintion of the behavior of using `var` keyword
   //var myVar = 10;
})();
Run Code Online (Sandbox Code Playgroud)

但是,运行代码将在myVar注释时生成ReferenceException ,而在未注释时生成undefined.我希望它在两种情况下都生成未定义,因为if myVar是一个全局变量(根据定义),而不是javascript的变量提升会在到达之前使其知道console.log(myVar);

这种行为背后的解释是什么?(我描述的行为是我在firefox的控制台中尝试时得到的,但运行它jsfiddle不会引发错误).

自动执行功能是吊装的例外吗?

javascript hoisting

-1
推荐指数
1
解决办法
471
查看次数