gpt4 book ai didi

wpf - 当 AutoGenerateColumns ="True"时如何使数据网格的特定列成为组合框

转载 作者:行者123 更新时间:2023-12-05 00:26:03 25 4
gpt4 key购买 nike

我是 MVVM 新手。我在我的项目中使用 wpf 和 MVVM。所以我现在正在测试一些东西,然后再深入研究我需要编写的应用程序。

我的页面(EmpDetailsWindow.xaml)是这样的

<Grid>
<DataGrid Name="dgEmployee" Grid.Row="0" AutoGenerateColumns="True" ItemsSource="{Binding EmployeeDataTable}" CanUserAddRows="True" CanUserDeleteRows="True" IsReadOnly="False" />
<Button x:Name="btnSubmit" Content="Submit" Command="{Binding SubmitCommand}" CommandParameter="sample param" HorizontalAlignment="Left" Margin="212,215,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>

我的模型(EmpDetailsWindowViewModel)如下
public class EmpDetailsWindowViewModel : INotifyPropertyChanged
{
public ICommand SubmitCommand { get; set; }
public EmpDetailsWindowViewModel()
{
EmployeeDataTable = DataTableCreator.EmployeeDataTable();
GenderDataTable = DataTableCreator.GenderDataTable();
SubmitCommand = new SubmitCommand();
}

DataTable _employeeDataTable;
public DataTable EmployeeDataTable
{
get { return _employeeDataTable;}
set
{
_employeeDataTable = value;
RaisePropertyChanged("EmployeeDataTable");
}
}

DataTable _genderDataTable;
public DataTable GenderDataTable
{
get { return _genderDataTable; }
set
{
_genderDataTable = value;
RaisePropertyChanged("GenderDataTable");
}
}

public event PropertyChangedEventHandler PropertyChanged;


public void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}

datagrid 已成功绑定(bind)到数据表。现在我在数据网格中有一个“性别”列。这应该是一个组合框,并且组合框的项目源来自 View 模型的 GenderDataTable 。我怎样才能做到这一点?

最佳答案

你可以这样做

<DataGrid AutoGeneratingColumn="DataGrid_AutoGeneratingColumn"/>

private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if (e.PropertyName == "Gender")
{
var cb = new DataGridComboBoxColumn();
cb.ItemsSource = (DataContext as MyVM).GenderDataTable;
cb.SelectedValueBinding = new Binding("Gender");
e.Column = cb;
}
}

关于wpf - 当 AutoGenerateColumns ="True"时如何使数据网格的特定列成为组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13622522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com