2010-08-16 94 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