SerialNo가 DatagridComboboxColumn 인 Product, Serial No 열이있는 DataGrid가 있습니다. 제품 ID를 기반으로 제품이 동적으로 선택되면 serial No 콤보 상자를 채 웁니다. 내 XAML은 다음과 같습니다wpf datagrid : 동적으로 combobox 컬렉션을 변경합니다.
<my:DataGrid Name="dgSales" ItemsSource="{Binding}" SelectionUnit="Cell" AutoGenerateColumns="False" >
<my:DataGrid.Columns>
<my:DataGridTextColumn Header="Product" Visibility="Hidden" Binding="{Binding ProductName}"></my:DataGridTextColumn>
<my:DataGridComboBoxColumn Header="Serial No" Width="135"
SelectedValueBinding="{Binding SerialNo}"
SelectedValuePath="SlRecord_Id"
DisplayMemberPath="SlNum"
>
<my:DataGridComboBoxColumn.ElementStyle>
<Style TargetType="{x:Type ComboBox}">
<Setter Property="ItemsSource" Value="{Binding}" />
</Style>
</my:DataGridComboBoxColumn.ElementStyle>
<my:DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="{x:Type ComboBox}">
<Setter Property="ItemsSource" Value="{Binding}" />
</Style>
</my:DataGridComboBoxColumn.EditingElementStyle>
</my:DataGridComboBoxColumn>
</my:DataGrid.Columns>
</my:DataGrid>
내 데이터 객체는 다음과 같습니다
class clsSalesItems : INotifyPropertyChanged, IDataErrorInfo
{
private string _ProductName;
private string _SerialNo;
private ObservableCollection<ModelNos> _SerialNos;
public string ProductName
{
get { return _ProductName; }
set
{
_ProductName = value;
OnPropertyChanged("ProductName");
}
}
public ObservableCollection<ModelNos> SerialNos
{
get
{
return _SerialNos;
}
set
{
_SerialNos = value;
OnPropertyChanged("SerialNos");
}
}
}
내 SerialNo 클래스는 다음과 같습니다
이public class ModelNos
{
private int _SlRecord_Id;
private string _SlNo;
public int SlRecord_Id
{
get { return _SlRecord_Id; }
set
{
_SlRecord_Id = value;
}
}
public string SlNum
{
get { return _SlNo; }
set
{
_SlNo = value;
}
}
}
지금 내 문제는 내가 직렬에게 더 콤보 상자 열을 채울 수 없습니다 할 때 제품이 동적으로 선택됩니다 (일련 번호는 제품마다 다릅니다). 제품을 선택할 때 시리얼을 콤보 상자에 어떻게 바인딩합니까?