2012-03-16 84 views
0

我在我的WPF項目中有一個組合框,我想讓它在我的配置類中由只讀字符串數組定義的項目。這樣我可以很容易地重新配置組合框項目。是否可以將ComboBox ItemsSource綁定到只讀字符串[]?

是否有可能將我的ItemsSource屬性綁定到只讀字符串[]?如何做到這一點?

+4

這是可能的。你有什麼嘗試? – Bernard 2012-03-16 18:08:48

+0

當然,我已經嘗試過,但是我做不到。這就是爲什麼我想在這裏得到一些幫助。你能發佈代碼嗎? – jpnavarini 2012-03-16 18:11:09

回答

3

主窗口:

<Window x:Class="WpfApplication4.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:WpfApplication4" 
    Title="MainWindow" Height="350" Width="525"> 
<StackPanel> 
    <ComboBox ItemsSource="{Binding List, Source={x:Static local:Configuration.Instance}}"></ComboBox> 
</StackPanel> 

配置文件:

public class Configuration 
{ 

    // Singleton    
    private static Configuration _instance; 
    public static Configuration Instance 
    { 
     get 
     { 
      if (_instance == null) 
       _instance = new Configuration(); 

      return _instance; 
     } 
    } 

    public IEnumerable<string> List 
    { 
     get 
     { 
      return new List<string>() 
      { 
       "toto 1", 
       "toto 2" 
      }; 
     } 
    } 

    public Configuration() 
    { 

    } 
} 
+0

綁定到枚舉:http://stackoverflow.com/questions/878356/wpf-combobox-binding-to-enum-what-did-i-do-wrong – Jonas 2012-03-16 18:20:30

+0

你可以做到這一點沒有單身的事情,例如如果List只是配置的靜態屬性? – 2013-09-10 10:03:57

+0

@LouisRhys也許嘗試這樣的:http://stackoverflow.com/a/3862828/1073409 – Jonas 2013-09-10 18:58:12

3

是,複製/粘貼/編譯如下:

<ComboBox ItemsSource="Is it possible to Bind a ComboBox (WPF) ItemsSource to a read only string[]"/> 
相關問題