小编Joh*_*res的帖子

TabItem在一个单独的XAML中

是否可以将TabItem放入单独的XAML并引用如下内容:

<TabControl>
     <local:MyTabItem/>
</TabControl>



In Separate XAML:
<UserControl x:Class="MyProject.MyTabItem"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <TabItem Header="MyTab">

    </TabItem>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

当然它不起作用,但我想知道我该怎么做?

wpf tabitem

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

有没有办法可靠地检测CPU核心的总数?

我需要一种可靠的方法来检测计算机上有多少CPU核心.我正在创建一个数字密集的模拟C#应用程序,并希望创建最大数量的运行线程作为核心.我已经尝试了许多围绕互联网建议的方法,比如Environment.ProcessorCount,使用WMI,这段代码:http://blogs.adamsoftware.net/Engine/DeterminingthenumberofphysicalCPUsonWindows.aspx 他们似乎都不认为AMD X2有两个内核.有任何想法吗?

编辑:似乎Environment.ProcessorCount返回正确的数字.它位于具有超线程的英特尔CPU上,返回错误的数字.超线程的核心是2,当它应该只有1时.

.net c# multithreading cpu-cores

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

使用VFPOLEDB驱动程序读取DBF

我使用VFPOLEDB驱动程序读取DBF文件,我不断收到此错误,我不知道为什么以及如何解决问题:

提供程序无法确定Decimal值.例如,刚刚创建了行,Decimal列的默认值不可用,并且消费者尚未设置新的Decimal值.

这是代码.我调用此例程来返回DBF文件的DataSet并在DataGridView中显示数据.

public DataSet GetDBFData(FileInfo fi, string tbl)
{
    using (OleDbConnection conn = new OleDbConnection(
    @"Provider=VFPOLEDB.1;Data Source=" + fi.DirectoryName + ";"))
    {
        conn.Open();
        string command = "SELECT * FROM " + tbl;
        OleDbDataAdapter da = new OleDbDataAdapter(command, conn);
        DataSet ds = new DataSet();
        da.Fill(ds);
        return ds;
    }
}
Run Code Online (Sandbox Code Playgroud)

oledb dbf dataset

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

如何确定是否已安装/注册VFPOLEDB提供程序?

如果VFPOLEDB提供程序已安装/注册,我需要检查我的程序吗?我想显示一条消息并告诉用户下载并安装提供程序.我如何在C#中查看?

c# oledb provider

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

查找数组之间匹配数的最快方法是什么?

目前,我正在测试每个整数元素,以找出哪些匹配.数组在其自己的集合中不包含重复项.此外,阵列并不总是相等的长度.有什么技巧可以加快速度吗?我这样做了好几千次,所以它开始成为我的程序的瓶颈,这是在C#中.

c# arrays optimization match

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

如何获取突出显示的所有元素

我想获得用户突出显示区域中的所有元素.问题是当元素位于树的不同部分时,我不知道如何遍历DOM的不同部分.到目前为止,我的代码只能从选择范围的startContainer中获取元素.我需要某种递归吗?这是我的代码:

    getSelectedElementTags:function() 
{
    var range, sel, container;
    sel = content.window.getSelection();
    if (sel.getRangeAt) 
    {
        if (sel.rangeCount > 0) 
        {
            range = sel.getRangeAt(0);              
        }
    } 
    else 
    {       
        range = content.window.createRange();
        range.setStart(sel.anchorNode, sel.anchorOffset);
        range.setEnd(sel.focusNode, sel.focusOffset);
        alert("range created");
    }


    if (range)
    {
        container = range["startContainer"];
        var elms = container.parentNode.getElementsByTagName("*");          
        elmlist = "parent: "+container.parentNode.tagName + " (" + elms.length + ")\n";
        for (i in elms)
        {
            if (elms[i].tagName != null)
            {
                elmlist += elms[i].tagName+"\n";
            }
        }

        alert(elmlist);
    }
},
Run Code Online (Sandbox Code Playgroud)

javascript dom

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

读取属性时,跨线程操作无效

我尝试从自定义面板控件中读取属性时收到此错误.该属性返回面板中文本框的值.如何读取从另一个线程返回文本框控件值的属性?我的房产代码示例如下.我并不担心二传手.

以下是eaxct错误消息:跨线程操作无效:控件''从其创建的线程以外的线程访问.

public string Header
{
get
{
   return _HeaderComboBox.Text;
}
set
{
   _HeaderComboBox.Text = value;
}
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading

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

划分到最近的1位小数,没有浮点数学?

我的C#程序存在一些速度问题,并确定此百分比计算导致速度减慢.计算只是n/d*100.分子和分母都可以是任何整数.分子永远不会大于分母,永远不会是负数.因此,结果总是从0到100.现在,这是通过简单地使用浮点数学来完成的,并且有点慢,因为它被计算了数千万次.我真的不需要比精确到0.1%更精确的东西.并且,我只是使用这个计算值来查看它是否大于固定的常数值.我认为一切都应该保持为整数,因此0.1精度的范围将是0-1000.有没有办法在没有浮点数学的情况下计算这个百分比?

这是我用于计算的循环:

for (int i = 0; i < simulationList.Count; i++)
{
    for (int j = i + 1; j < simulationList.Count; j++)
    {
        int matches = GetMatchCount(simulationList[i], simulationList[j]);
        if ((float)matches / (float)simulationList[j].Catchments.Count > thresPercent)
        {
            simulationList[j].IsOverThreshold = true;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# floating-point integer division

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