Я боролся с этой проблемой уже две недели.Я искал по всему Google и Stackoverflow, и я не могу найти правильный ответ.
Обычно я не люблю задавать вопросы, если это не является абсолютно необходимым, но я действительно не могу понять этоout!
Проблема заключается в следующем.
У меня есть приложение с двумя моделями представления.
В одном содержится список элементов, которые можно создать на отдельной странице.
Когда пользователь возвращается к основному приложению, у меня есть DataGrid, и когда я добавляю строку в DataGrid, ComboBox перечисляется в столбце, и этот ComboBox содержит элементы из первой ViewModel.
Я хочу, чтобы, когда пользователь выбирает элемент из этого ComboBox, я хотел, чтобы значение из ComboBox попало в текущую ViewModel DataGrid и изменило значение другого элемента в 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>