請幫我弄清楚如何在WPF的DataGrid中使用ComboBoxColumn。 我正在嘗試創建一個設備列表,其中每個設備都有「日誌」字段中的動態狀態列表。將ComboBoxColumn綁定到WPF DataGrid中DataGrid的ItemsSource的集合
<DataGrid AutoGenerateColumns="False" Margin="12,6,12,12" Name="dataGrid1" Grid.Row="1" SelectionUnit="FullRow">
<DataGrid.Columns>
...
<DataGridComboBoxColumn Header="Log"
ItemsSource="{Binding log, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:Device}}}"/>
</DataGrid.Columns>
</DataGrid>
public partial class MainWindow : Window
{
public ObservableCollection<Device> devices;
...
}
public MainWindow()
{
...
dataGrid1.ItemSource = devices;
}
public class Device : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
public Device() {log = new ObservableCollection<string>();}
...
private ObservableCollection<string> _log;
public ObservableCollection<string> log { get { return _log; }
set { _log = value; OnPropertyChanged("log"); } }
}
你可以共享任何建議:我怎樣才能顯示在數據網格列表中的每個對象的「日誌」每個組合框?
首先檢查您的datagridcolumn是否通過在日誌(集合)的get方法上應用斷點來檢索日誌。如果它正在那個斷點上,那麼檢查你的日誌(集合)是否爲空,請檢查它。 – loop
日誌(集合)在運行時定義爲非空。但DataGridComboBoxColumn不檢索日誌。 –
所以thr是你的綁定問題在相對的源代碼部分..你不能給你的日誌存在的正確路徑。所以只是把你的整個windows.cs代碼在這裏我會檢查出來,並希望使它對你正確 – loop