gpt4 book ai didi

c# - WPF:无法识别或无法从 XAML 访问整数 CLR 属性

转载 作者:太空狗 更新时间:2023-10-29 23:39:24 25 4
gpt4 key购买 nike

我在 WPF 中有一个自定义控件。我添加了两个普通的 CLR 属性,看起来像这样:

private int _ChordFrom = 0;
public int ChordFrom
{
get { return _ChordFrom; }
set { _ChordFrom = value; }
}

private int _ChordTo = 0;
public int ChordTo
{
get { return _ChordTo; }
set { _ChordTo = value; }
}

我使用普通 CLR 属性,因为我不想将这些属性绑定(bind)到任何其他依赖项。我只想在实例化控件时在 XAML 中设置值。

在 XAML 中,属性由智能感知发现,但在构建项目时出现错误:

“无法识别或无法访问成员“ChordFrom”。”“无法识别或无法访问成员“ChordTo”。”

XAML 代码如下所示:

<TabItem Header="CHORDS I">
<Grid x:Name="_gridChords_1" Background="AliceBlue">
<mg:MidiChordGrid x:Name="gridMidiChordGrid_1" Grid.Row="1" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ChordFrom="0" ChordTo="7"/>
</Grid>
</TabItem>

我想知道三件事:

  • 为什么 Intellisense 向我提供 XAML 中的属性,如果他们无法访问?

  • 如果我关闭所有 XAML 窗口,重建项目,错误消失。

  • 即使可以毫无错误地构建项目,属性也是未设置。

回答 |回答 |回答 |回答 |回答 |回答 |回答

感谢所有答案,但解决方案/错误在我的代码中。设置这两个 CLR 属性后,我忘记更新我的网格。对此感到抱歉。

但这里有一些您可能想知道的事实:

  • 您可以在 WPF XAML 中使用和设置纯 CLR 属性。我检查了一下,属性是从 XAML 设置的
  • 错误“无法识别或无法访问”似乎是一个 VS 错误,因为该项目是可构建的
  • 如果您在 VS 中关闭 XAML 文件,将不会再出现构建错误

对我来说,使用普通 CLR 属性是目前最好的解决方案,因为我传递给控件的值是针对控件的每个实例进行硬编码的,并且它们在运行时不会更改。当然,如果值在运行时发生变化,我会想使用附加的 DP,但它们不会。

感谢您的快速回答,但最终还是我的错。

最佳答案

我只是确认这似乎是问题中提到的 Visual Studio 错误。我向控件添加了几个属性,并花了一个小时试图找出它无法构建的原因。阅读完上面的帖子后,我简单地关闭了 xaml 文件,单击构建并成功构建。使用 VS 2013 社区 sp 4。

关于c# - WPF:无法识别或无法从 XAML 访问整数 CLR 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18829631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com