У меня есть DataGrid, привязанный к коллекции ObservableCollection
<DataGrid Name="dgWork" Grid.Row="4" Grid.ColumnSpan="4" ItemsSource="{Binding Path=TranslationData}" Style="{StaticResource DataGridStyle}" Height="206"
CanUserAddRows="False" CanUserDeleteRows="False" AutoGenerateColumns="False" SelectionMode="Single" VerticalScrollBarVisibility="Auto"
RowEditEnding="dgWork_RowEditEnding">
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding Path=Id}" IsReadOnly="True" />
<DataGridTextColumn Header="Original" Binding="{Binding Path=Original}" IsReadOnly="True" CanUserSort="False" />
<DataGridTextColumn Header="Translated" Binding="{Binding Path=Translated}" CanUserSort="False" />
<DataGridCheckBoxColumn Header="Is Translated" Binding="{Binding Path=IsTranslated, Converter={StaticResource translatedConverter}, Mode=TwoWay}" CanUserSort="False" IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
TranslationData это свойство следующим образом:
public ObservableCollection<XLIFFData> _xliffData = new ObservableCollection<XLIFFData>();
public ObservableCollection<XLIFFData> TranslationData { get { return _xliffData; } }
Когда переведенный текст обновляется:
DataGridRow dgRow = e.Row;
//Update the _doc for the Row Id if original != translated
//Update the _doc translated to equal true
var localData = (XLIFFData) dgRow.Item;
//Making presumption that even changing case is editing text
if (localData.Original.Equals(localData.Translated)) return;
foreach(var item in _xliffData)
{
if(item.Id == localData.Id)
{
item.Translated = localData.Translated;
item.IsTranslated = "translated";
}
}
Как я также могу обновить CheckBox, чтобы его отключить?
Я попытался обновить коллекцию, полагая, что DataGrid будет обновлен. Я также попытался выполнить команду dgWork.Items.Refresh (), которая не удалась с утверждением, что это не разрешено при редактировании или добавлении