簡體   English   中英

WPF:無法識別或無法從XAML訪問整數CLR屬性

[英]WPF: Integer CLR property not recognized or is not accessible from XAML

我在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屬性,因為我不想將這些屬性綁定到任何其他依賴項。 我只是想在實例化控件時在XAML中設置值。

在XAML中,屬性是由intellisense找到的,但在構建項目時我得到錯誤:

“會員”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,如果值在運行時更改,他們不會。

感謝您的快速解答,但最終這是我的錯。

我只是確認這似乎是問題中提到的視覺工作室錯誤。 我向控件添加了幾個屬性,花了一個小時試圖找出它不會構建的原因。 閱讀上面的帖子后,我只需關閉xaml文件,點擊構建並成功構建。 使用VS 2013社區sp 4。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM