小编Rus*_*den的帖子

如何在 Visual Studio 项目模板中将 XAML 设置为嵌入式资源(而不是页面)?

无论模板的设置如何,Visual Studio(2019 - 尚未在其他版本上测试)似乎都在强制从 Visual Studio 项模板添加的任何 .xaml 文件将其构建操作设置为 Page。例如:

  <TemplateContent>
    <References />
    <ProjectItem ReplaceParameters="true" ItemType="EmbeddedResource" CustomTool="" TargetFileName="$fileinputname$.xaml">Page1.xaml</ProjectItem>
    <ProjectItem ReplaceParameters="true" ItemType="EmbeddedResource" CustomTool="" TargetFileName="$fileinputname$.cs">Page1.xaml</ProjectItem>
  </TemplateContent>
Run Code Online (Sandbox Code Playgroud)

这只是两次添加相同的 XAML 文件,以证明当作为 .cs 文件添加时,一切都按预期工作,构建操作对应于所需的 ItemType。但是,当使用 .xaml 扩展名添加时,构建类型会强制为 Page - 覆盖 ItemType 规范。

这是 Visual Studio 项模板解析器的预期行为,如果是,有什么方法可以覆盖它吗?我所需要的只是将 XAML 文件正确地视为 XAML 文件(以启用设计器),并将其构建操作设置为嵌入式资源。

xaml templates visual-studio

5
推荐指数
0
解决办法
43
查看次数

在C#中是否有任何方法可以为设置了默认值的属性自动设置DefaultValueAttribute?

反正有没有隐含地执行以下模式?

    [DefaultValue(true)]
    public bool SomeBooleanProperty { get; set; } = true;
Run Code Online (Sandbox Code Playgroud)

在两个地方重复默认值似乎只是在某处乞求错误,无论如何似乎都是多余的.我可以想象一些将DefaultValueAttribute自动设置为默认值(或任何值)的情况是不可取的,但我认为这些将是例外而不是规则.在这些情况下,解决方案只是在构造函数中设置默认值,而不是在我认为比冗余代码更轻松的声明中.

c#

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

多个 .WhenAny(...).ToPropertyEx(...) 调用是否应该相互覆盖?

我有一个有两个的对象WhenAnyValues

this.WhenAnyValue(x => x.SomeInt)
    .Select(x => "Bar" + x)
    .ToPropertyEx(this, x => x.SomeString);
                
this.WhenAnyValue(x => x.SomeInt)
    .Select(x => "Foo" + x)
    .ToPropertyEx(this, x => x.SomeString);

Run Code Online (Sandbox Code Playgroud)

使用 1-4 作为输入进行测试,得出:

1
Foo0
Foo1
2
Foo2
3
Foo3
4
Foo4
Run Code Online (Sandbox Code Playgroud)

交换方法的顺序WhenAnyValue,使 Bar 出现在最后,会导致仅触发 Bar。所以看来后者WhenAnyValue在某种程度上覆盖了第一个。这是一个错误还是有意的行为?如果这是一个错误,那么它来自 ReactiveUI 版本 16.3.10。

如果对项目进行过滤,例如,仅将 Foo 设置为偶数值,将 Bar 仅设置为奇数值,也会出现此问题。您仍然只能得到WhenAnyValue最后被调用的那个。

Foo0 是由于延迟执行造成的,与此问题无关。

c# reactiveui

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

标签 统计

c# ×2

reactiveui ×1

templates ×1

visual-studio ×1

xaml ×1