평상시처럼 약간의 조사를했지만 사이트 또는 다른 곳에서 답변을 찾을 수 없습니다. 기존 질문에 대해 지적 해 주시면 고맙겠습니다. 그렇지 않은 경우 여기에 질문이 있습니다.DataTable에 바인딩에도 불구하고 ListView가 업데이트되지 않습니다.
ListView
개체가 DataTable
개체에 바인딩되어 있습니다.
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);
다음과 같이 쿼리가 수행하는 실제 코드 : 바인딩 코드는 다음과 같다
<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>
: 아래의 정의를 참조
/** 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 Framework 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
@ 싱크 그것은 중요하지 않습니다. 내 편집을 참조하십시오. –