在写次文前先不得不说下网上的其他wpf的DataGrid绑定ComboBox的方式,看了之后真是让人欲仙欲死。

首先告诉你一大堆的模型,一大堆的控件模板,其实或许你紧紧只想知道怎么让combobox怎么显示出来而已。

惯例先上图:

达到这样的效果其实很简单,除了让数据模型之外紧紧只有几行代码。

先看数据模型:

view source print if (string.IsNullOrEmpty(propertyName)) throw new ArgumentNullException( "propertyName" ); PropertyChangedEventHandler handler = PropertyChanged; if (handler != null ) handler( this , new PropertyChangedEventArgs(propertyName));

后面的OnPropertyChanged无需在意    是为了达到数据动态变化   ,一般是不需要的

看下datagrid  的combobox的模板    这是重点

view source print <DataGrid AutoGenerateColumns= "False" Height= "236" HorizontalAlignment= "Left" Margin= "12,0,0,0" Name= "dataGrid1" VerticalAlignment= "Top" Width= "471" > <DataGrid.Columns> <DataGridTextColumn Header= "Header1" Binding= "{Binding Name}" /> <DataGridTemplateColumn Header= "Template" > <DataGridTemplateColumn.CellTemplate> <DataTemplate> <ComboBox ItemsSource= "{Binding Desciption}" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid>

看到了 吗    总共两列 一个textbox   一个combobox  就是这么简单    除过数据模型之外紧紧几行代码就可以搞定!

数据的初始化:

view source print

public ObservableCollection<Department> listDepartments{set;get;}

listDepartments = DB.GetCollection<Department>();

this.DataContext = this;

<Window.Resources>

<CollectionViewSource x:Key="departments" Source="{Binding listDepartments}" />

</Window.Resources>

<DataGridComboBoxColumn Width="100" Header="专业组" SelectedValuePath="Name" TextBinding="{Binding Department}" ItemsSource="{Binding Source={StaticResource departments}}" DisplayMemberPath="Name" />

在写次文前先不得不说下网上的其他wpf的DataGrid绑定ComboBox的方式,看了之后真是让人欲仙欲死。首先告诉你一大堆的模型,一大堆的控件模板,其实或许你紧紧只想知道怎么让combobox怎么显示出来而已。惯例先上图:达到这样的效果其实很简单,除了让数据模型之外紧紧只有几行代码。先看数据模型:view sourceprint?01.pu...
不管是 WPF 还是winform ,多个 ComboBox 绑定 同一个数据源时,选择其 一个 ComboBox ,其他的也跟着变成同一选项.原因是 combobox 绑定 了同一个数据源,对数据源的操作导致了其他控件改变.但是在有些情况下, 我们确实需要让多个 combobox 控件 绑定 同一个数据源,但不想让他们联动.这样就必须想办法让他们分别对应一个数据源. 为每一个combox都设置不同的数据源就行了 WPF
最近项目有个需求需要动态扩展 DataGrid ,动态扩展列,cell的模板不一样,有的textbox,有的combox,并且需要后台 绑定 style设置datatrigger 先看combox的 DataGrid TemplateColumn col = new DataGrid TemplateColumn(); var stackPanelFactory = new FrameworkElementFactory(typeof(S
关于 WPF DataGrid ComboBox 的内容显示异常的问题,可能会有多种原因。以下是一些可能的解决方法: 1. 如果 ComboBox 的ItemsSource是 绑定 的,那么可能是 绑定 的数据源发生了变化,但是 ComboBox 没有及时刷新。可以尝试调用 ComboBox 的UpdateLayout()或者InvalidateVisual()方法来强制刷新界面。 2. 另外,如果 ComboBox 的数据源 包含了空值或者重复的值,可能会导致显示异常。可以尝试对数据源进行过滤,只保留有效的选项。 3. 如果 ComboBox 的内容是从数据库 读取的,可能是因为数据类型不匹配导致的。可以检查数据库 的数据类型和 ComboBox 的数据类型是否一致。 4. 另外,如果 ComboBox 的选项是从多个表格 读取的,可能需要使用Join语句来将数据合并到一个表格 ,再 绑定 ComboBox 上。 希望以上方法能够帮助解决你的问题。