簡體   English   中英

WPF靜態屬性綁定不在列表視圖上工作

[英]WPF static property binding not working on a list view

我目前正在將列表視圖綁定到對象列表,並且每個人都在工作。

只要我放入我的Window元素DataContext="{Binding RelativeSource={RelativeSource Self}}"我就可以很好地綁定到xaml后面的代碼。

我的ListView看起來像這樣,綁定對我的綁定列正常工作到MyCollection項的屬性。

<ListView ItemsSource="{Binding MyCollection}">

對於其中一個專欄,我總是希望它說同樣的話。 例如,此列將始終包含“Hello World”

以下代碼給出了綁定錯誤:

<GridViewColumn Header="I want all fields to be Hello World" DisplayMemberBinding="{Binding Source={x:Static Member=MyNamespace.MyStaticClass},Path=MyStaticStringField}" />

我收到錯誤:

錯誤MC3050:找不到類型“MyNamespace”。 請注意,類型名稱區分大小寫。

MyNamespace與窗口本身的名稱空間相同,MyStaticClass是公共的

如果我嘗試:

<GridViewColumn Header="I want all fields to be Hello World" DisplayMemberBinding="{Binding Source={x:Static Member=MyStaticClass},Path=MyStaticStringField}" />

我收到錯誤:

錯誤MC3029:'MyStaticClass'成員無效,因為它沒有合格的類型名稱。

奇怪的是,當我這樣做時,它有效:

<GridViewColumn Header="This works" DisplayMemberBinding="{Binding Source={x:Static Member=SystemFonts.IconFontFamily}, Path=Source}" />

我試圖綁定到的字段的代碼:

namespace MyNamespace
{
    public static class MyStaticClass
    {
        public static string MyStaticStringField{ get; set; }

    }
}

我認為你必須包括命名空間

xmlns:local="clr-namespace:MyNamespace"

然后像這樣使用它:

{x:Static Member=local:MyStaticClass}

使用x:Static您需要指定靜態字段或屬性(不僅僅是類)的路徑。

<GridViewColumn Header="I want all fields to be Hello World" DisplayMemberBinding="{Binding Source={x:Static MyNamespace:MyStaticClass.MyStaticStringField}}" />

另請注意,命名空間與冒號(不是點)的類名分開。

您不能直接綁定到包含Namespace的類

使用xmlns:mynamespace =“pathtoyournamespace”在頁面或窗口或Usercontrol聲明中設置NameSpace

並在綁定中引用它:{x:Static mynamespace:MyStaticClass},Path ....

另外添加其他答案x:static應綁定到靜態類MEMBER ,而不是類本身。

暫無
暫無

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

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