Fork me on GitHub

林德熙

If you have any language confusion,please talk to me lindexi_gd@163.com.

UWP 开发中,需要知道的1000个问题

本文主要写我开发遇到常(zi)见(zhang)问题。

真的有那么多问题?其实我就想记 ListViewItem 的问题,我自己都不记得在什么时候写如何设置他不压缩。

设置 ListView 列表项宽度

默认 ListViewItem 是宽度压缩,在 ListView 添加代码

            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel Orientation="Horizontal"></StackPanel>
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>

C# AddRange 添加位置

C# AddRange 添加位置

AddRange 添加的是在列表的最后。一开始我以为是最前。

List 添加重复项

有时候需要写一个测试,添加1000个相同项,难道使用 For ?

实际有简单方法

                List<string> Items = Enumerable.Repeat("lindexi 需要重复文字", n/*多少个*/).ToList();

上面不仅是文字,因为使用List<string> ,实际使用什么,就添加什么。

Distinct linq 匿名类去重

http://www.aneasystone.com/archives/2015/04/distinct-in-csharp-linq.html

const readonly

接下来告诉大家const 与 readonly 有什么区别。

如果一个类有静态字段,会如何初始化

有两个方法,不过这里不继续说

    private static Test _test = new Test();


    private static Test _test;
    static Demo()
    {
        _test = new Test();
    }

请看下面两个代码有什么区别

    const string str = "xxxxx";
    static readonly string str = "xxxxx";

const 编译时常量

static readonly 运行时常量

修改两常量的值,生成新的Test.dll,然后运行Demo.exe(不编译)。

不重新编译,const不会修改

如果dll被其他100个工程引用的话, 每次修改Test的const变量后一定要重新build这100个工程, 不然的话这些工程里的const值就不会更新。

1.编译时常量更改时,引用该常量的程序集必须重新编译, 才能获取已更新的值。

2.运行时常量更改时,引用该常量的程序集不必重新编译,直接运行便可获得已更新的值。

对于隐式转换,如果是 const 支持隐式转换,如果是static readonly,不支持

(1)const常量在编译时解析;而static readonly常量在运行时解析。

(2)const常量必须在定义时初始化;而static readonly常量可以在定义时初始化,也可以在构造函数中初始化;

(3)非常确定不会改变的常量值可以用const,必须写在函数体内的常量需要用const,需要被attributes用到的常量应该用const。

(4)常量需要被客户端引用,且可能会改变,应该用static readonly。

绑定 DataContext 的所有方法

win10 uwp DataContext

如果觉得ms需要做一些功能,或想去说垃圾ms,请到Welcome to the Windows developer feedback site!

UWP中获取Encoding.Default

    Encoding.GetEncoding(0);

参见:UWP中获取Encoding.Default - yinyue200 - 博客园

判断 ctrl 按下

判断 ctrl 按下,可以使用:

    (Window.Current.CoreWindow.GetKeyState(VirtualKey.Control) & CoreVirtualKeyStates.Down) != 0

判断其它的如 shift 使用方法也一样。

ContentDialog 透明背景

张高兴的 UWP 开发笔记:定制 ContentDialog 样式 - 张高兴 - 博客园

bind 的默认 mode

{x:Bind} 的默认 Mode 是 OneTime。{Binding} 的默认 mode 是 OneWay.

参见 Data binding in depth

有趣故事

开发中,会遇到一些有趣的故事。

有一天vs告诉我,你写的代码,连标点符号我也不信。

我是世界上少见的不需要写单元测试的程序员,因为我写的代码都是bug。

下面,我来告诉你一些有趣的故事:

有趣的“烫烫烫烫”和“屯屯屯屯” - imjustice - 博客园

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系