2014-06-10 87 views
1

我以前在窗口中有一個非常奇怪的控件,用於調整DataGrid的字體大小。這是連接到顯示當前字體大小的TextBoxSlider。如果我移動了Slider,則DataGrid上的字體大小將會調整。將ComboBox綁定到字體大小

<TextBox Text="{Binding Path=FontSize}"/> 
<Slider Minimum="12" LargeChange="4" SmallChange="4" 
     Interval="15" Maximum="28" Value="{Binding Path=FontSize}"/> 

我想用一個ComboBox有字體大小不同的選擇,但其他方面相同的方式工作,以取代本。

假設上述工作,我將如何下降ComboBox替換?

這是我曾嘗試:

<ComboBox MinWidth="40" Margin="11,0,0,0" 
      IsEditable="True" 
      SelectedItem="{Binding Path=FontSize}" 
      DisplayMemberPath="FontSize">       
    <ComboBoxItem Content="12"/> 
    <ComboBoxItem Content="14"/> 
    <ComboBoxItem Content="16"/> 
    <ComboBoxItem Content="18"/> 
    <ComboBoxItem Content="20"/> 
    <ComboBoxItem Content="22"/> 
    <ComboBoxItem Content="24"/> 
    <ComboBoxItem Content="26"/> 
    <ComboBoxItem Content="28"/> 
</ComboBox> 

但是,這只是一個空白的顯示項開始,然後不管顯示「12」(這是默認的字體大小,我裝在我的視圖模型)我從下拉列表中選擇哪種尺寸。

我想從顯示當前的字體大小開始,然後我想讓它實際調整字體大小。

回答

0

嘗試更換:

SelectedItem="{Binding Path=FontSize}" 

SelectedValue="{Binding Path=FontSize}" 
1

的問題是,在的SelectedItem發送ComboBoxItem到字號其預期的整數。

<ComboBox Name="FontSizeComboBox" IsEditable="True" 
      SelectedItem="{Binding Path=FontSize}"> 
    <ComboBox.ItemsSource> 
      <x:Array Type="{x:Type System:Int32}"> 
       <System:Int32>12</System:Int32> 
       <System:Int32>14</System:Int32> 
       <System:Int32>16</System:Int32> 
       <System:Int32>18</System:Int32> 
       <System:Int32>20</System:Int32> 
       <System:Int32>22</System:Int32> 
       <System:Int32>24</System:Int32> 
       <System:Int32>26</System:Int32> 
       <System:Int32>28</System:Int32> 
      </x:Array> 
    </ComboBox.ItemsSource> 
</ComboBox> 

我需要以下命名空間添加到我的用戶:

xmlns:System="clr-namespace:System;assembly=mscorlib" 

我仍然有興趣知道如何編程設置字體大小列表。我所有的嘗試都導致顯示空白下拉。