私はDataGrid
とDataGridTemplateColumn
とComboBox
を持っています。私は、それは明らかに私のコレクションの新しいインスタンスを作成していないとだけ空白のリストが表示されます、空白行のComboBox
をクリックWPF DataGridシングルクリックして新しいアイテムを作成する
<DataGrid GridLinesVisibility="All" AutoGenerateColumns="False" ItemsSource="{Binding TestItemCollection}">
<DataGrid.Columns>
<DataGridTemplateColumn Width="*" Header="Test Column">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Width="150"
HorizontalAlignment="Left"
ItemsSource="{Binding TestChildCollection}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
public ObservableCollection<TestClass> TestItemCollection { get; set; } = new ObservableCollection<TestClass>
{
new TestClass(),
new TestClass(),
new TestClass(),
};
public class TestClass
{
public ObservableCollection<string> TestChildCollection { get; set; } = new ObservableCollection<string>
{
"First test item", "Second test item" , "Third test item" , "Fourth test item"
};
}
。
私は空の行のスペースにダブルクリックする必要があります。
だけにして、私はComboBox
内のデータを得るでしょう。私は、空白行のシングルクリックでCombobox
内のデータを取得できますか
?
私はあなたの考えを持っています。これはDataContextでTestClassの新しいインスタンスを作成しますが、データでコンボボックスを開けません。以前は行を選択する前に結論を出していましたが、それだけでComboboxはデータを取得します。 – Spirosi
これは正しい@Spirosiではありません。 .NET 4とCaliburn.Micro 2.0.2でコードをテストしました。最後のコンボボックスをクリックすると、「挿入行」内に挿入されたコンボボックスが** _データ(つまり、「最初のテスト項目」、「2番目のテスト項目」、「3番目のテスト項目」、第4の試験項目」)。あなたは別の行動を取っていますか? –
私はそれをインタラクティブでのみテストしました。 Cliburnで試してみる。 – Spirosi