私はこの問題に2週間苦労しています。Google と Stackoverflow 全体を検索しましたが、正しい答えが見つからないようです。
絶対に必要な場合を除き、通常は質問をしたくありませんが、これは本当にわかりません!
問題は次のとおりです。
2 つの ViewModel を持つアプリケーションがあります。
1 つには、別のページで作成できるアイテムのリストが含まれています。
ユーザーがメイン アプリケーションに戻ると、DataGrid があり、DataGrid に行を追加すると、ComboBox が列にリストされ、この ComboBox には最初の ViewModel の項目が含まれます。
私がしたいことは、ユーザーがこの ComboBox からアイテムを選択したときに、ComboBox の値を DataGrid の現在の ViewModel に渡して、DataGrid 内の別のアイテムの値を変更することです。
現在、次の設定を行っていますが、まだ機能させることができません。
可能であれば、ストレート XAML でこれを行いたいと考えています。
明らかに、次の XAML は目的に対して間違っています。
<DataGrid Style="{StaticResource dataGridStyle}" ItemsSource="{Binding CurrentParser.InputVariables}" AutoGenerateColumns="False" Margin="6,6,35,6" Name="dgInputVarDefs">
<!--
<DataGrid.Triggers>
<EventTrigger RoutedEvent="ComboBox.SelectionChanged">
</EventTrigger>
</DataGrid.Triggers>
-->
<DataGrid.Columns>
<DataGridTextColumn Header="#" Binding="{Binding Path=number}" />
<DataGridTextColumn Header="Name" Binding="{Binding Path=name}" />
<DataGridTemplateColumn x:Name="dgtcFormatter" Header="->Formatter">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
ItemsSource="{Binding Source={StaticResource FormatterViewModel},
Path=CurrentFormatter.formats}"
x:Name="cbFormatter" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn x:Name="dgtcFormat" Header="->Format">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox x:Name="dgtcFormatTextBox" Text="{Binding Path=format.format}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Separator" Binding="{Binding Path=separator}" />
<DataGridTextColumn Header="Preview" Binding="{Binding Path=preview, NotifyOnSourceUpdated=True, UpdateSourceTrigger=PropertyChanged}"/>
</DataGrid.Columns>
</DataGrid>