小编Gif*_*guy的帖子

是否有*clean*方法使只读依赖项属性反映另一个属性的值?

下面的代码是我目前的解决方案.

如果你花了几分钟来弄清楚这段代码在做什么,我听到你了.

如果有的话,这是一个丑陋的混乱.我会杀死看到另一种选择,(但不要让那些阻止你回应...... :-).哦,jeez,我甚至通过删除转换器代码来缩小它(基本上),当我查看这段代码时,我仍感到诵读困难.

我试图模仿的一个很好的例子是FrameworkElement.ActualWidth属性.您知道如何计算和重新分配ActualWidth属性,每当Width属性更改时,或者何时重绘控件,或者何时重新分配?------

从开发人员的角度来看,它看起来就像数据绑定一样勤奋.
但ActualWidth是一个只读的依赖项属性.微软是否真的不得不经历这个巨大的代码垃圾洞才能实现这一目标?或者是否有一种更简单的方法利用数据绑定系统的现有功能?

public class foo : FrameworkElement
{
    [ValueConversion(typeof(string), typeof(int))]
    public class fooConverter : IValueConverter
    {   public object Convert(  object value, Type targetType,
                                object parameter, CultureInfo culture)
        { ... }
        public object ConvertBack(  object value, Type targetType,
                                    object parameter, CultureInfo culture)
        { ... }
    }

    private static readonly fooConverter fooConv = new fooConverter();



    private static readonly DependencyPropertyKey ReadOnlyIntPropertyKey =
        DependencyProperty.RegisterReadOnly( "ReadOnlyInt", typeof(int),
                                             typeof(foo), null);
    public int ReadOnlyInt
    {   get { return (int)GetValue(ReadOnlyIntPropertyKey.DependencyProperty); …
Run Code Online (Sandbox Code Playgroud)

.net c# data-binding wpf dependency-properties

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

为什么 C++ 对具有负值的枚举发出警告?

我当前的代码类似于:

enum Enum1 : signed __int8
{
    Value1 = 1 ,
    Value2 = 2 ,
    Value3 = -3  // C4341
} ;
Run Code Online (Sandbox Code Playgroud)

错误详细信息状态:
“警告 C4341:'Value3':有符号值超出枚举常量范围”

MSDN指出,仅当您使用 int 范围之外的值时才会出现此警告:
(> 2^31) OR (< 1 - 2^31)

为什么它告诉我我的负值无效?这只是一个警告,但谷歌告诉我,这个警告表明这些枚举值将是未定义的 - 这将破坏我的程序。

c++ enums warnings compiler-warnings visual-c++

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

如何制作动态大小的数据表?

我正在使用 Excel 2010。

我有一个与此类似的“每月”数据表:

MonthBegin    InventoryExpenses  Overhead  TotalSales  TotalSalesIncome  TotalProfit
July-11       $1,500             $4,952    89          $7,139            $687
August-11     $2,200             $4,236    105         $8,312            $1,876
September-11  $1,100             $4,429    74          $6,691            $1,162
Run Code Online (Sandbox Code Playgroud)

以下公式会自动传播到 [MonthBegin] 列中的每个单元格:

=DATE( 2011, 7 + ( ROW( ) - 2 ), 1 )
Run Code Online (Sandbox Code Playgroud)

每个其他列都有一个类似的列公式,它根据 [MonthBegin] 列中列出的月份自动从另一个来源提取适当的数据。

通过这种配置,我可以在表格的任意位置插入一个新行,下个月将自动以正确的顺序出现在底部(我觉得这很不错)。

但我需要将其提升到更高的自动化水平,以取悦管理层。
我怎样才能让电子表格在一个月结束后自动为十月添加一行?

我一直在考虑为表格使用动态范围:

=OFFSET(A1,0,0,( ( YEAR( TODAY( ) ) - 2011 ) * 12 ) + ( MONTH( TODAY( ) ) - 7 ),6)
Run Code Online (Sandbox Code Playgroud)

...但 Excel 不会接受这样的表格区域公式,我认为是因为它不是静态的。
谁能向我解释如何使用我的数据表获得此功能?

datatable excel excel-formula

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

如何在索引视图中模拟计数?

我正在使用Microsoft SQL Azure v12.0中托管的数据库

我正在使用索引顾问来帮助确定索引真正有用的地方,而不会过度索引我的数据库.

GROUP BY遇到的情况是索引视图确实有助于在每次有人运行查询时消除对大量数据的需求.

在尝试为我的一个表格制作索引视图时,我遇到了一个令人费解的错误.
这是我的数据库中非常常见的情况,所以我想知道是否有一个全面的通用解决方案,我可以在任何需要的地方重新使用.

我收到的错误如下:

消息10126,级别16,状态1,行12
无法在视图"Database.dbo.vwCountDistinctExampleIX"上创建索引,因为它使用COUNT_BIG带有DISTINCT关键字的聚合" " .
...
考虑使用a GROUP BYCOUNT_BIG(*)视图来模拟DISTINCT分组列.

当我需要COUNT_BIG ( DISTINCT {expression} )在索引视图中显然不允许时出现问题.
错误消息似乎暗示您可以模拟COUNT DISTINCT行为并在使用的情况下获得相同的结果DISTINCT,这将非常好,因为它将允许我索引该列并再次帮助消除GROUP BY常见查询中的另一种类型的昂贵子句(因为执行计划可以只引用索引而不是反复重组表数据.

我真的不明白COUNT_BIG ( * )在这种情况下是如何工作的,所以我不明白错误信息试图建议的内容.
有没有一种方法可以在不使用的情况下获得此聚合值,DISTINCT同时仍然可以索引聚合列?

CREATE VIEW [vwCountDistinctExampleIX] WITH SCHEMABINDING AS SELECT
                                         [T1].[ID]            ,
    COUNT_BIG ( DISTINCT [T2].[Field2] ) AS   [DistinctTotal] ,
    COUNT_BIG ( * )                      AS …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server indexing aggregate-functions

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

如何限制在构造向量后调用“resize()”?

我正在构建一个类,该类公开具有固定长度的顺序容器,但长度在编译时未知。

因此,当构造我的类的实例时,会传入一个参数,以指示向量需要有多大。

但施工后需要固定长度。
我需要保证该resize()函数无法被调用,同时仍然允许代码的其他部分修改向量中的各个元素。
(换句话说,我不能简单地将向量公开为vector<T> const&

对于任何其他修改长度的函数也是如此,例如insert()push_back()等。
这些函数需要受到限制或隐藏。

这可能吗?
或者我真的需要构建自己的fixed_vector包装类来隐藏不需要的功能吗?

c++ collections containers vector

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

加密代码的陷阱

我正在修改现有的安全代码.规范很清楚,有示例代码,但我不是加密专家.实际上,示例代码中有一个免责声明,实际上是"不要逐字使用此代码".

在审核我要修改的代码(这应该是完整的功能)时,我遇到了这个用于生成挑战的小宝石:

static uint16 randomSeed;

...

uint16 GetRandomValue(void)
{
  return randomSeed++;/* This is not a good example of very random generation :o) */
}
Run Code Online (Sandbox Code Playgroud)

当然,我立即做的第一件事就是将它传递到办公室,这样我们都可以大笑.

生成此代码的程序员知道它不是一个好的算法(如评论所示),但我不认为他们理解安全隐患.他们甚至懒得在主循环中调用它,所以它至少会变成一个自由运行的计数器 - 仍然不理想,但超出此范围的世界.

但是,我知道我生产的代码同样会导致一个真正的安全大师轻笑或震惊.

  • 我需要了解哪些最常见的加密安全问题?
  • 有什么好的资源可以让我适当了解除了常见错误之外我应该知道什么?

-亚当

security cryptography prng

4
推荐指数
3
解决办法
587
查看次数

如何引用附加属性作为数据绑定的来源?

这是我的代码的缩写样本.

<Grid>

<Polygon
  Name="ply" Grid.Column="2" Grid.Row="0" Grid.RowSpan="3"
  Fill="Orange" Stroke="Orange" Points="0,1 1,3 2,2 2,0 0,0"
/>

<Line
  Grid.Column=    "{Binding ElementName=ply, Path=Grid.Column, Mode=OneWay}"
  Grid.Row=       "{Binding ElementName=ply, Path=Grid.Row, Mode=OneWay}"
  Grid.ColumnSpan="{Binding ElementName=ply, Path=Grid.ColumnSpan, Mode=OneWay}"
  Grid.RowSpan=   "{Binding ElementName=ply, Path=Grid.RowSpan, Mode=OneWay}"
  X1="0" Y1="0" X2="1" Y2="1"
/>

</Grid>
Run Code Online (Sandbox Code Playgroud)

代码编译得很好,没有任何错误或警告 - 但是当我运行应用程序时,它出现在输出窗口中:

System.Windows.Data Error: 39 : BindingExpression path error:
'Grid' property not found on 'object' ''Polygon' (Name='ply')'.
BindingExpression:Path=Grid.Column; DataItem='Polygon' (Name='ply');
target element is 'Line' (Name=''); target property is 'Column' (type 'Int32')

System.Windows.Data Error: 39 : BindingExpression path error: …
Run Code Online (Sandbox Code Playgroud)

.net data-binding wpf xaml .net-3.5

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

为什么Google Chrome的元素放置不太精确?

例如,如果我创建了四个绝对定位为50%宽度和50%高度的图像块,则Internet Explorer中的结果如下所示:
http://img716.imageshack.us/img716/8376/96774641.png
如预期的那样,图像紧挨着彼此放置.

但是Chrome中的相同代码产生了这样的结果:
http
://img560.imageshack.us/img560/7976/chrome.png图像缩小了一点,以便为它们之间的间距腾出空间.

我的风格包括:

border-style: none;
border-width: 0;
padding: 0;
margin: 0;
Run Code Online (Sandbox Code Playgroud)

...那么为什么Chrome会将我的图像与其他图像区分开来,如何在不改变其他首先正确渲染的浏览器的显示的情况下修复它?

编辑: <link removed>
请注意,实际页面要复杂得多,超过1,000个<img>元素.
它将在任何非硬件加速的浏览器中缓慢加载.
我已经确认FireFox与IE8完全相同,图像旁边的图像应该是相同的.

html css browser rendering cross-browser

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

如何在SQL 2008 R2中的表中创建AutoCounter列?

"数据类型"下拉列表中没有任何内容表示自动计数器.
我选择了int,我假设其他地方有一个设置将其变成一个自动计数器.
我的想法是为我的主键提供100%唯一ID,每次添加一行时,它都会获得分配给它的下一个可用ID号.

http://img64.imageshack.us/img64/2472/primarykey.png

sql t-sql sql-server auto-increment sql-server-2008

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

IEEE 754 浮点数能否用多个位排列表示完全相同的值?

IEEE 754 浮点数能否用多个位排列表示完全相同的值?

例如:
128 exp 3 == 1024.0
256 exp 2 == 1024.0
1024 exp 0 == 1024.0

只要净值最终看起来相同,IEEE 754 标准是否认为不同的位排列在比较时值相等?

我正在研究一些自定义压缩算法,了解是否有多种方法来表示相同的值(为了增强压缩的目的)非常有用。

floating-point ieee ieee-754

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