问题列表 - 第18254页

wpf如何判断数据绑定何时完成?

我有一个自定义控件,它有一个DependencyProperty MyAnimal - 我将ViewModel上的Animal属性绑定到MyAnimal DependencyProperty.

我在控件上粘贴了一个TextBox,所以我可以触发一个事件 - 每当我触发事件时MyAnimal属性已被设置 - 但是如果我在MyAnimal属性的Setter上放置一个断点,它永远不会被触发!

我想我错过了一些关于WPF依赖属性/绑定的基本知识?!

所以我的问题是,如果我不能使用Setter,我怎么能知道它何时被设置?如果我把如果我在InitializeComponent()之后放置一个断点,那么我看看是否有一个事件可以挂钩--DatabindingFinished或类似的?但看不出它会是什么......

有人可以帮忙吗?

谢谢,

安迪

public partial class ControlStrip
{
    public ControlStrip()
    {
        InitializeComponent();
    }

    public Animal MyAnimal
    {
        get
        {
            return (Animal)GetValue(MyAnimalProperty);
        }
        set
        {
            SetValue(MyAnimalProperty, value);
        }
    }

    public static readonly DependencyProperty MyAnimalProperty =
        DependencyProperty.RegisterAttached("MyAnimal", typeof (Animal), typeof (ControlStrip));

    private void TextBox_TextChanged(object sender, System.Windows.Controls.TextChangedEventArgs e)
    {
        var myAnimal = MyAnimal;
        MessageBox.Show(myAnimal.Name);
    }

}
Run Code Online (Sandbox Code Playgroud)

data-binding wpf dependency-properties custom-controls

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

过度工程的具体症状

我最近发现自己处理了一个(内部)应用程序,我已经写给我公司喜欢雇用的两个候选人,以协助维护和添加次要功能.

这是我写的第一个"生产"应用程序,它有45k LOC,我花了将近两年的"独奏"开发.我还很年轻(18岁),从头开始编写应用程序,同时签约作为离开公司的前开发人员的替身.我没有经验设计这种大小的应用程序,我试图使用常见的架构和设计模式.

今天我知道我已经做了一些严肃的过度工程,例如使用断开连接的变更跟踪架构而不是所选ORM已经实现的工作单元模式.我可能永远不会去"真正的"三层.

两位候选人都有10年以上的内部应用程序开发背景和相关平台.作为他们年龄的一半,没有经验,我尊重他们的意见.当我向他们解释应用程序架构时,评论是这样的:

  • Jeez,没有人会付钱给我这样的事情,我必须把事情做好
  • 坚持框架的功能,不要使用花哨的库/技术
  • 不要包装框架代码.在团队中,每个人都会编写自己的包装代码.
  • 你使用的是.NET 3.5吗?好吧,我们正在使用2.0.
  • LINQ的东西给我带来了什么?所有这些查询组合和投影看起来都太复杂了.

现在我问自己:
我是建筑宇航员吗?我怎么知道我在建筑方面走得太远了?过度工程的常见症状有哪些?

architecture infrastructure

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

在Vim中将一个文件扩展名与另一个相关联

我正在开发一个PHP项目,其中所有文件的扩展名为".shtml".不幸的是,Vim不知道在这些文件中突出显示PHP.有没有办法迫使Vim突出显示这些文件为PHP而不是shtml?

vim

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

Django错误:为关键字参数获取了多个值

在使用构造函数overriden实例化Django表单时出现以下错误:

__init__() got multiple values for keyword argument 'collection_type'
Run Code Online (Sandbox Code Playgroud)

__init__()功能(下面示出)被完全按照写入这个但# code代替我的逻辑.请注意,我基本上重写了表单(这是一个ModelForm)构造函数.

def __init__(self, collection_type, user=None, parent=None, *args, **kwargs):
    # code
    super(self.__class__, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

创建错误的调用如下所示:

form = CreateCollectionForm(
    request.POST, 
    collection_type=collection_type, 
    parent=parent, 
    user=request.user
)
Run Code Online (Sandbox Code Playgroud)

我看不出错误弹出的原因.

编辑:这是构造函数的完整代码

def __init__(self, collection_type, user=None, parent=None, *args, **kwargs):
    self.collection_type = collection_type
    if self.collection_type == 'library':
        self.user = user
    elif self.collection_type == 'bookshelf' or self.collection_type == 'series':
        self.parent = parent
    else:
        raise AssertionError, 'collection_type must be "library", "bookshelf" or "series"'
    super(self.__class__, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

编辑:Stacktrace …

django django-forms

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

确定可执行文件(或库)是32位还是64位

是否有可能获得有关OS X上任何二进制文件的信息,以确定它是32位还是64位二进制文​​件?

我玩'otool'命令却找不到这种信息.

binary macos osx-snow-leopard

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

为什么64位比32位更快?

我一直在做一些性能测试,主要是因为我可以理解迭代器和简单for循环之间的区别.作为其中的一部分,我创建了一组简单的测试,然后对结果感到惊讶.对于某些方法,64位比32位快近10倍.

我正在寻找的是为什么会发生这种情况的一些解释.

[下面的答案说明这是由于32位应用程序中的64位算术.将long更改为int会在32位和64位系统上产生良好的性能.

以下是有问题的3种方法.

private static long ForSumArray(long[] array)
{
    var result = 0L;
    for (var i = 0L; i < array.LongLength; i++)
    {
        result += array[i];
    }
    return result;
}

private static long ForSumArray2(long[] array)
{
    var length = array.LongLength;
    var result = 0L;
    for (var i = 0L; i < length; i++)
    {
        result += array[i];
    }
    return result;
}

private static long IterSumArray(long[] array)
{
    var result = 0L;
    foreach (var entry in array)
    {
        result += …
Run Code Online (Sandbox Code Playgroud)

c# performance

21
推荐指数
2
解决办法
5109
查看次数

必填字段验证器

嗨,我使用了必需的现场valiator.

现在如果我禁用javascript.我可以提交表格,为什么?没有服务器端验证?

我已经设置了提交按钮和验证器的validaton组.

谢谢

asp.net validation requiredfieldvalidator

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

异步HttpWebRequests和null HttpContext.Current.Response/Request对象

我有一个很大程度上依赖于Web服务的Web应用程序.服务的所有内容都是异步完成的,并使用AddOnPreRequestHandlerExecuteAsync.无论如何,我的大多数调用都运行得很好,但是有些调用从异步服务调用返回,在endprerequest中找到一个空的HttpContext.Current.Response/Request对象,当然我试图使用这个错误.两个对象(响应和请求在初始请求失败的调用时可用/非空,并且在其他调用的最终请求中工作).

任何人遇到类似的问题,或猜测可能是什么问题?

更新:似乎找到了一个解决方案,如果我在Init上创建一个HttpApplication的变量(HttpModule的这一切都发生在那里),可以从该变量访问HttpContext.

更新:在begin函数上传递HttpApplication或HttpContext.Current具有相同的问题.当作为异步调用的"状态"的一部分传递时,它们在end函数中最终为null,即使它们在begin函数中有效.

更新:我添加了一些日志记录,发现我正在进行的异步调用正确返回,结果存在,回调函数被正确调用.

null asynchronous response httpwebrequest httpcontext

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

hashly alg如何在Golly中永远存在?

在哈希生活中,该场通常被视为理论上无限的网格,其中所讨论的图案集中在原点附近.四叉树用于表示场.给定一个2 ^(2k)个单元的平方,一侧为2k,在树的第k级,哈希表在中心存储2 ^(k-1)乘2 ^(k-1)个单元的单元,未来2 ^(k-2)代.例如,对于4x4平方,它存储2x2中心,1代前进; 对于一个8x8的正方形,它存储了4x4中心,前进了2代.

因此,给定一个8x8的初始配置,我们得到一个4x4平方1代正向中心,8x8平方和2x2平方2代正向(1代向前,4x4平方),居中于8x8平方.随着每一代新生代我们对网格的看法减少,反过来我们得到了自动机的下一个状态.在获得最内部的2x2平方2 ^(k-2)代后,我们可以继续前进.

那么Golly的哈希生活将如何永远持续下去?此外,它对该领域的看法似乎从未减少.它似乎显示了2 ^(k-2)代后整个自动机的状态.更多的是,如果随着时间的推移而扩展的起始配置,算法的视图似乎会增加.网格视图缩小以显示不断扩大的自动机?

c algorithm f# infinite conways-game-of-life

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

将RFC 3339时间转换为标准Python时间戳

有没有简单的方法将RFC 3339时间转换为常规Python时间戳?

我有一个正在读取ATOM源的脚本,我希望能够将ATOM源中项目的时间戳与文件的修改时间进行比较.

我从ATOM规范中注意到,ATOM日期包括时区偏移量(Z<a number>),但在我的情况下,之后没有任何内容,Z所以我猜我们可以假设GMT.

我想我可以用某种类型的正则表来解析时间,但我希望Python有一种内置的方式来做我以前无法找到的方法.

python datetime rfc3339

18
推荐指数
10
解决办法
3万
查看次数