Я борюсь с проблемой связывания в WPF / Silverlight. У меня есть ведьма Listview заполнена DataContext формы запроса EF linq. В том же usercontrol находятся текстовые поля. При изменении их значений, просмотр списка обновляется, а данные изменяются в de db bij .SaveChanges. Проблема в том, что если я использую комбинированный список, данные сохраняются, но де-просмотр списка не обновляется.
Можете ли вы помочь ????
Вот это xaml
<ListView Grid.Row="1" Grid.Column="0" Margin="4,4,4,0" x:Name="controlsListBox" Grid.RowSpan="7" ItemsSource="{Binding}" SelectedValuePath="ID" LostFocus="controlsListBox_LostFocus">
<ListView.View>
<GridView>
<GridViewColumn Width="25" Header="Rw" DisplayMemberBinding="{Binding RowNr}"/>
<GridViewColumn Width="25" Header="Cl" DisplayMemberBinding="{Binding ColumnNr}"/>
<GridViewColumn Width="100" Header="Name" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Width="25" Header="Tb" DisplayMemberBinding="{Binding TabIndex}"/>
<GridViewColumn Width="100" Header="Type" DisplayMemberBinding="{Binding ControlTypes.Name}"/>
<GridViewColumn Width="100" Header="Text" DisplayMemberBinding="{Binding TextResources.Text}"/>
</GridView>
</ListView.View>
</ListView>
<Label Grid.Row="2" Grid.Column="5" Height="23" Margin="4,4,4,0" x:Name="rowSpanLabel" VerticalAlignment="Top"
Content="RowNr"/>
<TextBox Grid.Row="2" Grid.Column="6" Height="23" Margin="4,4,4,0" x:Name="rowSpanTextBox" VerticalAlignment="Top"
Text="{Binding Path=SelectedItem.RowNr, ElementName=controlsListBox}"/>
<Label Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="2" Height="23" Margin="4,4,4,0" x:Name="controlTypeLabel" VerticalAlignment="Top"
Content="Type"/>
<ComboBox Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="5" Height="23" Margin="4,4,4,0" x:Name="controlTypeComboBox" VerticalAlignment="Top"
DataContext="{Binding Path=ControlTypes, ElementName=controlsListBox}" IsSynchronizedWithCurrentItem="True" DisplayMemberPath="Name"
SelectedItem="{Binding Path=SelectedItem.ControlTypes, ElementName=controlsListBox, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
/>
А вот код C #:
_controlProperties.Clear ();
var data = (из x в _dataContext.ControlProperties
где x.FormProperties.ID == 1
orderby x.RowNr, x.ColumnNr, x.Name
выберите х);
foreach (переменная в данных)
{
item.TextResourcesReference.Load ();
_controlProperties.Add (пункт);
}
// DataContext должен сначала быть установлен в нуль для хорошего результата.
controlsListBox.DataContext = null;
controlsListBox.DataContext = _controlProperties;
controlTypeComboBox.DataContext = (from c in _dataContext.ControlTypes
orderby c.Name
select c).ToList();