小编Dan*_*n H的帖子

DataGrid创建RadioButton列

我有绑定到DataGrid的对象.我创建了一个绑定到对象的Is Default属性的单选按钮列.

当应用程序启动时,正确的项目显示为默认值,但是绑定随后不会更新.我想要的行为是用户检查一个单选框并使该对象成为默认值.

        <DataGrid CanUserAddRows="False" AutoGenerateColumns="False" Name="TEst" >
        <DataGrid.Columns >
            <DataGridTextColumn Header="Value" Binding="{Binding Path=Name, Mode=OneTime}"/>

            <DataGridTemplateColumn Header="Is Default">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <RadioButton GroupName="Test" IsChecked="{Binding IsDefault}" />
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

        </DataGrid.Columns>
    </DataGrid>

 private class Test : INotifyPropertyChanged
    {
        public string Name
        {
            get;
            set;
        }
        bool isDefult;
        public bool IsDefault
        {
            get
            {
                return isDefult;
            }
            set
            {
                isDefult = value;
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
    }

    public MainWindow()
    {
        this.InitializeComponent();
        Test[] ya = new Test[] { new Test { Name …
Run Code Online (Sandbox Code Playgroud)

.net wpf binding .net-4.0 wpfdatagrid

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

为什么我需要两次调用来传输CopyTo?

我有以下方法,由于某种原因,第一次调用Copy似乎什么也没做?谁知道为什么?在压缩方法的输入中,base64可以根据需要提供该方法.

private byte[] GetFileChunk(string base64)
    {
        using (
            MemoryStream compressedData = new MemoryStream(Convert.FromBase64String(base64), false),
            uncompressedData = new MemoryStream())
        {

            using (GZipStream compressionStream = new GZipStream(compressedData, CompressionMode.Decompress))
            {
                // first copy does nothing ?? second works
                compressionStream.CopyTo(uncompressedData);
                compressionStream.CopyTo(uncompressedData);
            }

            return uncompressedData.ToArray();
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# stream c#-4.0

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

使用模板测试类的C ++单元测试测试

我正在做一些C ++测试驱动的开发。我有一组类做同样的事情,例如

相同的输入给出相同的输出(或者应该,这就是我试图测试的结果)。我正在使用Visual Studio 2012

CppUnitTestFramework。我想创建一个模板化的测试类,因此我编写了一次测试,并且可以根据需要在类中进行模板化,但是我找不到实现此目的的方法。我的目标:

/* two classes that do the same thing */
class Class1
{
    int method()
    {
        return 1;
    }
};

class Class2
{
    int method()
    {
        return 1;
    }
};

/* one set of tests for all classes */
template< class T>
TEST_CLASS(BaseTestClass)
{
    TEST_METHOD(testMethod)
    {
        T obj;

        Assert::AreEqual( 1, obj.method());
    }
};

/* only have to write small amout to test new class */
class TestClass1 : BaseTestClass<Class1>
{
};

class TestClass2 : BaseTestClass<Class1> …
Run Code Online (Sandbox Code Playgroud)

c++ templates unit-testing visual-c++ microsoft-cpp-unit-test

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

C++ AMP在硬件上崩溃(GeForce GTX 660)

我在写一些C++ AMP代码时遇到了问题.我收录了一个样本.它在模拟加速器上运行良好,但崩溃了我硬件上的显示驱动程序(Windows 7,NVIDIA GeForce GTX 660,最新驱动程序),但我的代码没有任何问题.

我的代码有问题,还是硬件/驱动程序/编译器问题?

#include "stdafx.h"

#include <vector>
#include <iostream>
#include <amp.h>

int _tmain(int argc, _TCHAR* argv[])
{
    // Prints "NVIDIA GeForce GTX 660"
    concurrency::accelerator_view target_view = concurrency::accelerator().create_view();
    std::wcout << target_view.accelerator.description << std::endl;

    // lower numbers do not cause the issue
    const int x = 2000;
    const int y = 30000;

    // 1d array for storing result
    std::vector<unsigned int> resultVector(y);
    Concurrency::array_view<unsigned int, 1> resultsArrayView(resultVector.size(), resultVector);

    // 2d array for data for processing 
    std::vector<unsigned int> dataVector(x * y); …
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++ c++11 c++-amp

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

是否可以使用wincrypt进行HMAC?

我一直在尝试使用wincrypt/cryptoapi/Cryptography API执行直接的SHA256 HMAC:下一代(CNG),我真的很挣扎.我的目标是Windows 8.

我找不到正确的方法或在任何地方找到任何例子.我希望在C/C++中执行以下操作,这在下面的C#中进行了演示

        HMAC hashMaker = new HMACSHA256(Encoding.ASCII.GetBytes("SecretKey"));
        byte[] hash = hashMaker.ComputeHash(Encoding.ASCII.GetBytes("<SomeXmlData />"));
        string hashStr = BitConverter.ToString(hash);
Run Code Online (Sandbox Code Playgroud)

它返回哈希:B2-42-48-67-5A-B8-03-87-5B-00-D7-8C-65-5A-AE-B7-92-E3-F9-27-40-C1-01 -A5-37-74-E1-65-51-9F-F6-6A.

有没有人成功使用cryptoapi执行直接HMAC?

c c++ winapi cryptoapi hmac

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