各位前辈好!\(^o^)/~ 小弟今日遇到个问题,百度了很久都没有找到比较好的解决方案,所以上论坛来求救一下:问题的背景是这样的:
工具:VS2008 SQL Server 2005
我在学习做一个数据库管理系统,简单的几张表,采用离线方式连接数据库,在vs2008添加了数据源。
然后现在有两个WPF窗口,其中一个(窗口1)有LIstView控件,另外一个窗口(窗口2)由窗口1的Button控件调用生成。
窗口2是用来修改数据库的数据。 现在问题是,当我窗口2修改成功后,但是窗口1的ListView并没有改动,需要手动刷新(我的手动刷新就是重新填充数据库的数据),或者是程序重启后才能看到。

不知道有什么方法可以即时更新呢?
所以当要读取数据库的内容时,我采用的方式是:例如我要读取分数表:
StuMis_DataDataSet ds=new StuMis_DataDataSet ();
StuMis_DataDataSetTableAdapters.ScoreTableAdapter scortAdapter=
    new StuMis.StuMis_DataDataSetTableAdapters.ScoreTableAdapter ();
DataView dview=new DataView();
scoreAdapter.Fill(ds.Score);
dview.Table = ds.Score;
listView1.ItemsSource = dview;ListView1的XML代码如下:
<ListView  Margin="11,47,8,0" Name="listView1" Height="269" VerticalAlignment="Top" >
            <ListView.View>
                <GridView AllowsColumnReorder="True">
                    <GridViewColumn  Width="90" DisplayMemberBinding="{Binding Path=StudentNum}" >
                        <GridViewColumn.Header>
                            <GridViewColumnHeader MouseDown="GridViewColumnHeader_MouseDoubleClick">学号</GridViewColumnHeader>
                        </GridViewColumn.Header>
                    </GridViewColumn>
                    <GridViewColumn  Width="100" DisplayMemberBinding="{Binding Path=StudentName}">
                        <GridViewColumn.Header >
                            <GridViewColumnHeader MouseDown="GridViewColumnHeader_MouseDoubleClick">姓名</GridViewColumnHeader>
                        </GridViewColumn.Header>
                    </GridViewColumn>
                    <GridViewColumn  Width="90" DisplayMemberBinding="{Binding Path=Score}">
                        <GridViewColumn.Header >
                            <GridViewColumnHeader MouseDown="GridViewColumnHeader_MouseDoubleClick">分数</GridViewColumnHeader>
                        </GridViewColumn.Header>
                        </GridViewColumn>
                </GridView>
            </ListView.View>
        </ListView>
                  其中的MouseDown="GridViewColumnHeader_MouseDoubleClick"是排序事件。
另外还有个问题:WPF里面貌似只有对整个ListView才有MouseDoubleClick事件,但是小弟我想双击某个Item就能产生事件的效果,不知道要怎么样才能做到。百度了一下有几种方法,貌似在WPF下都不能完成,有一种方法是:
{on doubleClick}If (ListView.SelectedItems.Count > 0) {//双击在Item上,然后对SelectedItems进行处理} else {//双击在空白处}本来以为这个方法可以,但结果还是不行,但你单击某个项的时候,然后不小心双击到其他地方(如快速点击滚动条的时候),这个时候还是会产生事件。
其他一些方法对于Form可能有用,但是在WPF里找不到相应的方法。 求助!!最后祝给位前辈五一快乐!!