Linq Listview和ComboBox之间的数据绑定刷新问题

Linq Listview和ComboBox之间的数据绑定刷新问题,linq,data-binding,refresh,Linq,Data Binding,Refresh,我正在努力解决WPF/Silverlight中的绑定问题。我有一个Listview,它由一个DataContext表单和一个EF linq查询填充。同一用户控件中有文本框。更改其值时,listview将刷新,数据将在de db bij.SaveChanges中更改。问题是,如果我使用组合框,数据会被保存,但de listview不会更新 你能帮忙吗???? 这是xaml <ListView Grid.Row="1" Grid.Column="0" Margin="4,4,4,0

我正在努力解决WPF/Silverlight中的绑定问题。我有一个Listview,它由一个DataContext表单和一个EF linq查询填充。同一用户控件中有文本框。更改其值时,listview将刷新,数据将在de db bij.SaveChanges中更改。问题是,如果我使用组合框,数据会被保存,但de listview不会更新

你能帮忙吗???? 这是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}" 
               />

您正在设置组合框的DataContext,而不是ItemsSource。在代码中,您通过提供控件类型列表来覆盖DataContext,因此XAML的一部分无论如何都会被忽略

删除DataContext声明并改用此声明:

ItemsSource="{Binding}"
这将导致控件类型出现在组合框中。执行此操作时,所选控件类型将显示在列表视图中


您可能还想研究一下我的WPF数据绑定的开源替代方案。这需要一些装订的课程之外的工作。

谢谢你的回答。我刚刚更改了代码,将业务层类与可观察的集合一起使用。现在一切都好了。 我仍然在想,直接绑定到linq查询是否可以正常工作

ItemsSource="{Binding}"