DataGrid中的Silverlight组合框

DataGrid中的Silverlight组合框,silverlight,data-binding,combobox,Silverlight,Data Binding,Combobox,我有一个Silverlight组合框,它位于网格外,运行良好。 但是,我无法让它在数据网格中正常工作。我不确定我做错了什么。非常感谢您的帮助! 此代码适用于网格外的silverlight组合框: XAML: 我使用了一个模板列,如: <sdk:DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Margin="2" VerticalAlignment="Center"

我有一个Silverlight组合框,它位于网格外,运行良好。 但是,我无法让它在数据网格中正常工作。我不确定我做错了什么。非常感谢您的帮助! 此代码适用于网格外的silverlight组合框:

XAML:


我使用了一个模板列,如:

<sdk:DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
        <TextBlock Margin="2" VerticalAlignment="Center"  HorizontalAlignment="Left" 
                    Text="{Binding Path=Option0, Mode=OneWay}" Width="Auto" />
    </DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <ComboBox Height="23" Name="cbx0" SelectedValuePath="Display" DisplayMemberPath="Display" 
                SelectedValue="{Binding Path=Option0, Mode=TwoWay}"
                ItemsSource="{Binding Source={StaticResource DataContextProxy},Path=DataSource.ocList0}"
                        MinWidth="65"
                Width="Auto">

            </ComboBox>
        </StackPanel>
    </DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
这是以一般的方式编写的,因为在运行时之前我不知道绑定是什么或者组合框将包含什么

一种更简单的方法是使用
List
查看博客文章


什么是问题?数据网格在哪里?
namespace CorporateHR.Web
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // TODO: Create methods containing your application logic.
    [EnableClientAccess()]
    public class ComboBoxItemService : DomainService
    {
        public IEnumerable<ComboBoxItem> GetComboboxItems_PatIdEssentris()
        {
            return ComboBoxItem.GetComboboxItems_PatIdEssentris();
        }
        public IEnumerable<ComboBoxItem> GetComboboxItems_ORStatus()
        {
            return ComboBoxItem.GetComboboxItems_ORStatus();
        }
    }

}
  private void comboBoxItemDomainDataSource_LoadedData(object sender, LoadedDataEventArgs e)
        {

            if (e.HasError)
            {
                System.Windows.MessageBox.Show(e.Error.ToString(), "Load Error", System.Windows.MessageBoxButton.OK);
                e.MarkErrorAsHandled();
            }
        }

        private void comboBoxItemComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {

        }
<sdk:DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
        <TextBlock Margin="2" VerticalAlignment="Center"  HorizontalAlignment="Left" 
                    Text="{Binding Path=Option0, Mode=OneWay}" Width="Auto" />
    </DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <ComboBox Height="23" Name="cbx0" SelectedValuePath="Display" DisplayMemberPath="Display" 
                SelectedValue="{Binding Path=Option0, Mode=TwoWay}"
                ItemsSource="{Binding Source={StaticResource DataContextProxy},Path=DataSource.ocList0}"
                        MinWidth="65"
                Width="Auto">

            </ComboBox>
        </StackPanel>
    </DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
public class cComboBoxOption
{
    public int Id { get; set; }
    public string Display { get; set; }

    public cComboBoxOption(int id, string name)
    {
        this.Id = id;
        this.Display = name;

    }

}