2014-01-16 64 views
0

我有一個類MainWindow.xaml.cs如何按鈕的內容綁定到靜態只讀領域

namespace HomeSecurity { 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
public partial class MainWindow : Window, INotifyPropertyChanged { 
     public static readonly string START = "start", RESET = "RESET"; 
    ..... 
} 

有在MainWindow.xaml一個按鈕:

<Button x:Name="AcceptCamerasButton" Content="{x:Static local:MainWindow.START}" Grid.Row="1" Click="AcceptCamerasButton_Click"></Button> 

如何給該按鈕的內容設置爲MainWindow.Start?當前版本不起作用。

編輯: 我宣佈:

xmlns:local="clr-namespace:HomeSecurity" 

,但仍當我使用:

<Button x:Name="AcceptCamerasButton" Content="{x:Static local:MainWindow.START}" Grid.Row="1" Click="AcceptCamerasButton_Click"></Button> 

我得到:

Error 1 The member "START" is not recognized or is not accessible. 

回答

1

您不能綁定到多個領域。綁定僅適用於屬性。因此,您可以將START的定義更改爲屬性,或者創建一個返回START的值並綁定到該屬性的屬性包裝。

public static string START 
{ 
    get { return "start"} 
} 

public static string RESET 
{ 
    get { return "RESET"; } 
} 

或者,如果你喜歡保持只讀支持字段:

private static readonly string startField = "start"; 

public static string START 
{ 
    get { return startField} 
} 

另外,我假設你已經這樣做了,但我包括這個反正,確保將名稱空間聲明包含在名稱空間local的XAML文件中,以指向本地程序集和適當的名稱空間。

xmlns:local="clr-namespace:YourProjectAssemblyName..." 
+0

如何定義只讀靜態屬性。你可以聲明和初始化START屬性嗎? – Yoda

+1

@Yoda是的,當然。我剛剛更新了相關詳細信息的答案 –

+0

請你能看到我編輯過的原始文章嗎? – Yoda