小编Pra*_*eek的帖子

绑定未按预期更新

我正在构建一个简单的UserControl,DoubleDatePicker,它定义了DependencyProperty,SelectedDate:

DoubleDatePicker.xaml:

<UserControl x:Class="TestWpfDoubleDatePicker.DoubleDatePicker"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit">    
<StackPanel x:Name="LayoutRoot" Background="White">
    <toolkit:DatePicker x:Name="DateInput" SelectedDate="{Binding SelectedDate,Mode=TwoWay}" Margin="5,0,5,0" />
    <TextBlock Text="{Binding SelectedDate}" />
    <toolkit:DatePicker SelectedDate="{Binding SelectedDate,Mode=TwoWay}" Margin="5,0,5,0" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

DoubleDatePicker.xaml.cs:

using System;
using System.Windows;
using System.Windows.Controls;


namespace TestWpfDoubleDatePicker
{
    public partial class DoubleDatePicker : UserControl
    {
        public static readonly DependencyProperty SelectedDateProperty =
        DependencyProperty.Register("SelectedDate", typeof(DateTime), typeof(DoubleDatePicker), null);

        public DateTime SelectedDate
        {
            get { return (DateTime)this.GetValue(SelectedDateProperty); }
            set { this.SetValue(SelectedDateProperty, value); }
        }

        public DoubleDatePicker() …
Run Code Online (Sandbox Code Playgroud)

c# data-binding wpf binding user-controls

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

指令模板中的数据绑定

我正在尝试构建一个非常基本的Angular指令,它生成一个"div",它可以有两个状态:"on"和"off".

我天真地想出了一个可以在这里找到的实现:http://jsfiddle.net/wSz2f/

初始显示是正确的,但是当范围状态改变时,视觉状态不会更新.

这是Angular指令定义:

var test = angular.module("test", []);
test.directive("led", function()
{   
    return {
        restrict: "E",
        replace: true,
        template: "<div class='led led-off' ng-class='{ \"led-on\": isOn }'>{{isOn}}</div>",
        link: function(scope, element, attributes, controller)
        {
            scope.isOn = false;

            element.bind("click", function()
            {
                scope.isOn = !scope.isOn;
            });
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

我想我做的事情很愚蠢,但是......?

而且,就设计而言,我是做"角度方式"还是有更好的做法?

感谢您的任何意见.:)


最终编辑:

感谢Mark,BertrandJames的意见:

  • 你必须在更新"isOn"属性之后调用范围.$ apply()以使Angular知道它的变化(考虑到它在其他框架中如何工作,如WPF/Silverlight与INotifyPropertyChanged接口,但不是使用所有魔法绑定进行Flex操作)或使用Bertrand建议的ng-click
  • 你必须为每个CSS类提供" ng-class "条件

angularjs angularjs-directive

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

带有动态接口的C#COM对象

我想构建一个COM可见的 C#类,比如说DynamicComponent,它将通过COM 提供动态接口.

在内部,这个类将维护一个代表字典:

"GetTheAnswer" -> () => { return 42; }
"Add" -> (int a, int b) => { return a + b; }
...
Run Code Online (Sandbox Code Playgroud)

客户端代码将是一些VBA.

这是我天真想象的工作流程:

  • 从Excel/VBA编辑器中,用户引用TLB
  • 用户实例化一个新的DynamicComponent(至少得到Excel/VBA提供的存根)
  • Excel/VBA COM基础结构通过其IDispatch接口查询组件
  • 组件使用disp-id地图来回答 ["GetTheAnswer" -> 1, "Add" -> 2]
  • 用户可以从自动完成中受益,并看到两种方法:GetTheAnswerAdd
  • 用户调用这些方法中的任何一个,就好像它是静态定义的一样

我的第一个问题:这可能吗?

如果不是:为什么

如果是的话:怎么样

根据我对COM的了解,如果可能的话,IDispatch COM接口是我最好的朋友.

而且,根据我的理解,.Net 4 的ICustomQueryInterface接口也可以提供很大的帮助.

但是,如今COM并不是真正的尖端;)很难找到像代码样本这样的资源.

我发现了这个有趣的示例:https : //clrinterop.codeplex.com/releases/view/32350,它使用ICustomQueryInterface接口实现COM聚合

但它不是动态的,而是基于静态定义的类型和接口. …

.net c# com idispatch

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

为什么我们在strtok()中使用NULL?

为什么我们在strok()函数中使用null ?

while(h!=NULL)
{
   h=strtok(NULL,delim);  
   if(hold!=NULL) 
      printf("%s",hold);    
}
Run Code Online (Sandbox Code Playgroud)

当*h指向字符串时,该程序会执行什么操作?

c null strtok

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

画布受到CORS数据和S3的污染

我的应用程序显示存储在AWS S3中的图像(出于安全原因,在私有存储桶中).

为了让用户看到他们的浏览器我生成图像签署的网址一样https://s3.eu-central-1.amazonaws.com/my.bucket/stuff/images/image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=...&X-Amz-Date=20170701T195504Z&X-Amz-Expires=900&X-Amz-Signature=bbe277...3358e8&X-Amz-SignedHeaders=host.
这与<img src="S3URL" />以下内容完美配合:图像正确显示.
我甚至可以通过复制/粘贴其URL来直接查看另一个标签中的图像.

我也正在生成嵌入这些图像的PDF,这些图像需要先进行转换,然后使用canvas:resized和watermarked.

但我用于调整大小的库有一些麻烦:

Failed to execute 'getImageData' on 'CanvasRenderingContext2D':
The canvas has been tainted by cross-origin data.
Run Code Online (Sandbox Code Playgroud)

事实上,我们处于CORS环境中,但我已经设置了所有内容,以便可以向用户显示图像,实际上它正在工作.
所以我不确定这个错误的原因:这是另一个CORS安全层:浏览器担心我可能会恶意更改图像吗?

我试图在S3存储桶上设置一个允许的CORS配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

而且img.crossOrigin = ""还是img.crossOrigin = "Anonymous"在客户端,但然后我得到:

Access to Image at 'https://s3.eu-central-1.amazonaws.com/...'
from origin 'http://localhost:5000' has been blocked by CORS policy:
No 'Access-Control-Allow-Origin' header …
Run Code Online (Sandbox Code Playgroud)

canvas image amazon-s3 amazon-web-services cors

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

通过反射获得.Net相应类型的C#类型

是否有一个函数,给定一个C#类型的字符串表示,返回相应的.Net类型或.Net类型的字符串表示; 或以任何方式实现这一目标.

例如 :

"bool" - > System.Boolean或"System.Boolean"

"int" - > System.Int32或"System.Int32"

...

谢谢.

编辑:非常抱歉,它不是我希望的"类型到类型"映射,而是"字符串到字符串"映射或"字符串到类型"映射.

.net c# reflection types

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

如何在功能测试中设置userAgent?

我找不到任何匹配方法sfTestFunctionalsfBrowser设置UserAgent字符串.也许这是不可能的,因为它通过php-cli?

phpunit symfony1 lime

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

IUnknown.Release标准实现竞争条件?

以下是实现IUnknown COM接口的Release方法的标准(不推荐)方法(直接取自MSDN):

ULONG CMyMAPIObject::Release()
{
    // Decrement the object's internal counter.
    ULONG ulRefCount = InterlockedDecrement(m_cRef);
    if (0 == m_cRef)
    {
        delete this;
    }
    return ulRefCount;
}
Run Code Online (Sandbox Code Playgroud)

我想知道如果公寓模型不是STA,是否会出现竞争条件:

  • 说剩下一个参考
  • 线程1通过调用Release释放它
  • 它运行并在之前停止 delete this
  • 线程2被调度并获得对该对象的新引用,例如通过调用QueryInterfaceAddRef
  • 线程1继续执行并运行 delete this
  • 线程2留有无效对象

对我来说,确保一致性的唯一方法是创建一个标志,比如删除,锁定整个关键部分,即除了返回之外的所有Release方法,并将标志设置为true.

并在AddRefQueryInterface方法中检查此标志,如果已设置,则拒绝新引用的请求.

我错过了什么?

提前致谢.

c++ windows com winapi multithreading

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

使用JavaScript API在Google云端硬盘中创建文件夹

我写了一个javascript方法来在google驱动器中创建文件夹.

function createFolder(){
  data = new Object();
  data.title = 'New Folder';
  data.parents = [{"id":jQuery('#parent').val()}];
  data.mimeType = "application/vnd.google-apps.folder";
  gapi.client.drive.files.insert(data).execute(function(fileList){});
}
Run Code Online (Sandbox Code Playgroud)

它使用mimeType"application/octet-stream"和父根目录创建名为"Untitled"的文件.该代码应该创建一个名为"New Folder"的文件夹.

javascript directory google-drive-api

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

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

按钮组太长时间不包装

我有一个很长的按钮组:https://jsfiddle.net/cyu4bvak/

<div class="btn-group" data-toggle="buttons">
    <label  class="btn btn-primary active">
        <input type="checkbox" />ABCDEFGHIJKLMNOPQRSTUVWXYZ
    </label>
    <label  class="btn btn-primary active">
        <input type="checkbox" />ABCDEFGHIJKLMNOPQRSTUVWXYZ
    </label>
    <label  class="btn btn-primary active">
        <input type="checkbox" />ABCDEFGHIJKLMNOPQRSTUVWXYZ
    </label>
    ...
</div>
Run Code Online (Sandbox Code Playgroud)

无论视口的大小如何,它总是需要一条长行来导致滚动.

是否有可能使其包裹,以便在较小的视口上它将包裹更多的线而不会导致滚动?

如果没有哪个替代方案我必须获得预期的行为?

css buttongroup responsive-design twitter-bootstrap twitter-bootstrap-4

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

在MVC中格式化可为空的DateTime字段

我试图更改datetime表中可空字段的格式,以便以格式显示ddd dd mmm yyyy.我尝试过使用DateTime.ToString("ddd dd mmm yyyy),DateTime.Value.ToString("ddd dd mmm yyyy")但是都没有用过.

<td>
  @Html.DisplayFor(modelItem => item.DailyReportDate)
</td>
Run Code Online (Sandbox Code Playgroud)

任何意见,将不胜感激.

c# model-view-controller asp.net-mvc

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