小编Rya*_*yan的帖子

如何使用NAMED内容创建WPF UserControl

我有一组带有附加命令和逻辑的控件,它们以相同的方式不断重用.我决定创建一个包含所有常用控件和逻辑的用户控件.

但是我还需要控件才能保存可以命名的内容.我尝试了以下方法:

<UserControl.ContentTemplate>
    <DataTemplate>
        <Button>a reused button</Button>
        <ContentPresenter Content="{TemplateBinding Content}"/>
        <Button>a reused button</Button>
    </DataTemplate>
</UserControl.ContentTemplate>
Run Code Online (Sandbox Code Playgroud)

但是,似乎无法命名放置在用户控件内的任何内容.例如,如果我以下列方式使用控件:

<lib:UserControl1>
     <Button Name="buttonName">content</Button>
</lib:UserControl1>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

无法在元素"Button"上设置Name属性值"buttonName".'Button'属于元素'UserControl1'的范围,在另一个范围内定义时,已经注册了一个名称.

如果我删除buttonName,然后编译,但我需要能够命名内容.我怎样才能做到这一点?

c# wpf xaml user-controls controls

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

C#中可空类型的替代方案

我正在编写适用于一系列数字数据的算法,有时,系列中的值必须为null.但是,由于此应用程序对性能至关重要,因此我避免使用可空类型.我已经对这些算法进行了性能测试,专门比较了使用可空类型和非可空类型的性能,在最好的情况下,可空类型的速度慢了2倍,但往往差得多.

最常用的数据类型是double,目前选择null的替代方法是double.NaN.但是我知道这不是NaN值的确切用途,所以我不确定是否有任何问题,我无法预见,最佳做法是什么.

我有兴趣找出以下数据类型的最佳空替代品:double/float,decimal,DateTime,int/long(尽管其他数据类型非常受欢迎)

编辑:我想我需要澄清我对性能的要求.数字数据的演出通过这些算法在几个小时的时间内处理.因此,虽然例如10毫秒或20毫秒之间的差异通常是微不足道的,但在这种情况下,它确实对所花费的时间产生了重大影响.

c# nullable nan non-nullable

12
推荐指数
3
解决办法
3605
查看次数

在LINQ中按顺序加入2个列表而不是条件

如何加入2个相等长度的列表(以产生相等长度的第3个列表),其中我不想指定条件,而只是依赖于2个列表中的项目顺序.

我怎么加入:

{1,2,3,4} with {5,6,7,8}
Run Code Online (Sandbox Code Playgroud)

生产:

{{1,5}, {2,6}, {3,7}, {4,8}}
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方法:

from i in new []{1,2,3,4}
from j in new []{5,6,7,8}
select new { i, j }
Run Code Online (Sandbox Code Playgroud)

但这会产生交叉连接.当我使用join时,我总是需要指定"on".

linq linq-to-objects join

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

标签 统计

c# ×2

controls ×1

join ×1

linq ×1

linq-to-objects ×1

nan ×1

non-nullable ×1

nullable ×1

user-controls ×1

wpf ×1

xaml ×1