<DataGrid IsReadOnly="False" AutoGenerateColumns="False" Background="white"
CanUserResizeColumns="False" CanUserResizeRows="False" SelectionMode="Single"
CanUserReorderColumns="False" AlternationCount="2" RowHeaderWidth="0" CanUserAddRows="False" ItemsSource="{Binding StaffVos,Mode=TwoWay}" SelectedItem="{Binding SelectStaffEntity}" >
<!--設定列-->
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="選擇" Binding="{Binding IsSelected}" x:Name="select" Width="1*"/>
<DataGridTextColumn Header="貨品ID" Visibility="Collapsed" Binding="{Binding ProductInformationID}" Width="10" />
<DataGridTextColumn Header="貨品編碼" Binding="{Binding ProductCoding}" Width="1*"/>
<DataGridTextColumn Header="貨品名稱" Binding="{Binding ProductName}" Width="2*"/>
<DataGridTextColumn Header="批 次" Binding="{Binding Batch,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="1*"/>
<DataGridComboBoxColumn Header="質 量" Width="*" ItemsSource="{Binding QualityGauge}" DisplayMemberPath="{Binding QualityGaugeName}" SelectedValuePath="{Binding QualityGaugeID}"
TextBinding="{Binding QualityGauge}" SelectedValueBinding="{Binding QualityGauge}" />
<DataGridTextColumn Header="數量" Binding="{Binding Quantity,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="1*"/>
<DataGridTextColumn Header="備注" Binding="{Binding Remark,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="2*"/>
<DataGridTemplateColumn Header="單位" Width="1*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate DataType="models:MyModelDescription">
<ComboBox ItemsSource="{Binding UnitSheet}" DisplayMemberPath="UnitSheetName" SelectedValuePath="UnitSheetID" SelectedItem="{Binding UnitSheetID, NotifyOnTargetUpdated=True, UpdateSourceTrigger=PropertyChanged}"></ComboBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
這是xaml的DataGrid 我需要把質量這個列的下拉框系結資料源;
<DataGridComboBoxColumn Header="質 量" Width="*" ItemsSource="{Binding QualityGauge}" DisplayMemberPath="{Binding QualityGaugeName}" SelectedValuePath="{Binding QualityGaugeID}"
TextBinding="{Binding QualityGauge}" SelectedValueBinding="{Binding QualityGauge}" />單位那里我用了ComboBox 系結下拉項,但是兩種我都試了一些方法,都系結不上去。
/// <summary>
/// 單位
/// </summary>
private List<D_UnitSheet> _UnitSheet;
public List<D_UnitSheet> UnitSheet
{
get { return _UnitSheet; }
set
{
if (_UnitSheet != value)
{
_UnitSheet = value;
RaisePropertyChanged(() => UnitSheet);
}
}
}
/// <summary>
/// 質量
/// </summary>
private List<D_QualityGauge> _QualityGauge;
public List<D_QualityGauge> QualityGauge
{
get { return _QualityGauge; }
set
{
if (_QualityGauge != value)
{
_QualityGauge = value;
RaisePropertyChanged(() => QualityGauge);
}
}
}
這里是和下拉框ItemsSource關聯的那個。
//單位
private List<D_UnitSheet> DanWei()
{
List<D_UnitSheet> UnitSheet = (from tbUnitSheet in myModel.D_UnitSheet select tbUnitSheet).ToList();
return UnitSheet;
}
//質量
private List<D_QualityGauge> ZhiLiang()
{
List<D_QualityGauge> QualityGauge = (from tbQualityGauge in myModel.D_QualityGauge select tbQualityGauge).ToList();
return QualityGauge;
}
//系結就是在需要的地方直接給下拉框的ItemsSource賦值查詢出來的資料,
//頁面上的下拉框就是這樣系結的但是表格里的不行。我也嘗試了其他方法最侄訓是失敗了。
////單位
UnitSheet = DanWei();
////質量
QualityGauge = ZhiLiang();
這里查詢出資料庫的資料作為下拉項。
就是系結不上資料。我的目的就是在表格里系結下拉框,下拉框的資料是從資料庫查詢出來的資料。
uj5u.com熱心網友回復:
你這里的DataGridComboBoxColumn的DataContext與DataGrid的DataContext是不同的,所以你需要在DataGridComboBoxColumn重新指定DataContext轉載請註明出處,本文鏈接:https://www.uj5u.com/net/282504.html
上一篇:動態加載表單權限控制問題
