像往常一樣,我做了一點研究,但無法在網站或其他地方找到答案。如果你能指點我一個存在的問題,我會很感激。否則,這裏是問題:ListView不會更新,儘管綁定到DataTable
我有一個ListView
對象綁定到一個DataTable
對象。請參見下面的定義:
<ListView Name="MyList">
<ListView.View>
<GridView>
<GridViewColumn x:Name="Column1Name" DisplayMemberBinding="{Binding Path=Column1}" />
<GridViewColumn x:Name="Column2Name" DisplayMemberBinding="{Binding Path=Column2}" />
<GridViewColumn x:Name="Column3Name" DisplayMemberBinding="{Binding Path=Column3}" />
<GridViewColumn x:Name="Column4Name" DisplayMemberBinding="{Binding Path=Column4}" />
</GridView>
</ListView.View>
</ListView>
綁定代碼如下:
DataTable items = new DataTable();
items = DatabaseService.GetMyItems(20, true, items);
Binding binding = new Binding();
binding.Source = items.DefaultView;
binding.Mode = BindingMode.OneWay;
MyList.SetBinding(ListView.ItemsSourceProperty, binding);
執行查詢是如下的實際代碼:
/** Parameters: commandText = <sql>, table = items */
using (DbConnection connection = new SqlConnection(Project.Properties.Settings.Default.ConnectionString))
{
using (DbCommand command = connection.CreateCommand())
{
command.CommandText = commandText;
command.CommandType = CommandType.Text;
using (DbDataAdapter dataAdapter = new SqlDataAdapter())
{
dataAdapter.SelectCommand = command;
dataAdapter.Fill(table);
}
}
}
此代碼工作第一次,但當我在數據更改後再次調用GetMyItems
方法時,數據不刷新。
我在做什麼錯?
DataTable已經在.Net框架API(使用4.0)-'System.Data.DataTable'中。可觀察列表屬性是'Datatable.DefaultView'有一個名爲'ListChanged'的事件([link here](http://msdn.microsoft.com/en-us/library/system.data.dataview(v = vs.100 )的.aspx))。 – Sinker
@Sinker沒關係。看我的編輯。 –