none
Datagrid 中 DataGridComboBoxColumn列下拉框选择的问题 RRS feed

  • 问题

  • xaml代码:

    <DataGrid Name="dgList" AutoGenerateColumns="false" >         
      <DataGrid.Columns>
                    <DataGridTextColumn Binding="{Binding 数据1}" Header="数据1" Width="*" IsReadOnly="True"/>
                    <DataGridComboBoxColumn Width="*" Header="数据2" SelectedItemBinding="{Binding 数据2}"  />
    </DataGrid.Columns>
            </DataGrid>

    xmal.cs代码(摘抄):

    //绑定List<实体类>到dglist上
    	dgList.ItemsSource = ClassModeList;
    
    	///绑定List<实体类>到dglist的DataGridComboBoxColumn上,实现当点击下拉框时可以选择ClassModeList2中的数据
    	 ((DataGridComboBoxColumn)dgList.Columns[1]).ItemsSource = ClassModeList2;

    问题:
     需要实现在dglist中点击DataGridComboBoxColumn的下拉框选择了一条数据(a1)后,在点击下一行数据的下拉框时,a1不再出现在下拉框中。
    请问相关代码该怎么写,才从winform转过来,还有很多不懂的地方,请指教 谢谢!

    2012年5月16日 3:37

答案

  • 你给的代码很少,不能够说明问题,不过我根据你的描述,简化了问题,做了个例子。 ClassModeList2 和 ClassModeList 你可能有某种关系导致了你的问题,请详细说明或者多给点代码:

        <DataGrid Name="dgList" AutoGenerateColumns="false" >
          <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding item1}" Header="数据1" Width="*" IsReadOnly="True"/>
            <DataGridComboBoxColumn Width="*" Header="数据2" SelectedItemBinding="{Binding item2}"  />
          </DataGrid.Columns>
        </DataGrid>

    C#:

      public partial class MainWindow : Window
      {
        public MainWindow()
        {
          InitializeComponent();
    
          dgList.ItemsSource = new List<Item>() { 
            new Item(),new Item(),new Item(),new Item(),new Item() 
          };
          ((DataGridComboBoxColumn)dgList.Columns[1]).ItemsSource = new List<string>() { "a", "b", "c", "d" };
        }
      }
    
      public class Item
      {
        public string item1 { get; set; }
        public string item2 { get; set; }
      }

    谢谢。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年5月17日 9:40
    版主