2010-08-16 134 views
2

我想在數據網格中使用組合框,但是我遇到了一個問題。下面是代碼:Silverlight組合框問題

<sdk:DataGrid AutoGenerateColumns="False" Margin="6,71,6,0" Name="dgridDeptNums" Loaded="dgridDeptNums_Loaded" Height="226" VerticalAlignment="Top"> 
      <sdk:DataGrid.Columns> 
       <sdk:DataGridTemplateColumn Header="Speciality" Width="*"> 
        <sdk:DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <ComboBox SelectedValue="{Binding Department, Mode=TwoWay}"> 
           <ComboBox.Items> 
            <ComboBoxItem>Information Technology</ComboBoxItem> 
            <ComboBoxItem>Human Resources</ComboBoxItem> 
            <ComboBoxItem>Engineering</ComboBoxItem> 
           etc... 
           </ComboBox.Items> 
          </ComboBox> 
         </DataTemplate> 
        </sdk:DataGridTemplateColumn.CellTemplate> 
       </sdk:DataGridTemplateColumn> 
       <sdk:DataGridTextColumn Header="# of Supervisors" Binding="{Binding Providers, Mode=TwoWay}" Width="*"/> 
       <sdk:DataGridTextColumn Header="# of Managers" Binding="{Binding Midlevels, Mode=TwoWay}" Width="*"/> 
      </sdk:DataGrid.Columns> 
     </sdk:DataGrid> 

的問題是,我想數據綁定的部門,但我得到的是System.Windows.Controls.ComboBoxItem。我相信我在這裏失去了一些東西,所以任何幫助表示讚賞。

韋德

+0

什麼類型是 「部門」?這是一個字符串還是它自己製作的一類?由於您的商品沒有綁定(只有選定的值),因此您可能會嘗試選擇與商品列表不同的值。 – SirDemon 2010-08-16 14:29:46

+0

@SirDemon Department是一個班級或我自己製作的一部分,它是一個字符串。 – Wade73 2010-08-16 14:38:29

+0

那麼你應該試試michael s scherotters的答案。 – SirDemon 2010-08-16 15:03:48

回答

3

,而不是 <ComboBoxItem>Information Technology</ComboBoxItem>

使用 <sys:string>Information Technology</sys:string>

其中

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

+0

我是否需要在標記內保留該標記? – Wade73 2010-08-16 16:36:04

+0

就是這樣,謝謝! – Wade73 2010-08-16 16:39:47

+0

SL 4中的「sys:string」應該是「sys:String」(注意大小寫)。 – Aligned 2010-11-01 20:50:12