我有我的觀點一個按鈕,在視圖模型執行此方法:的DataGrid不綁定到的ObservableCollection
public void GetAudits(Guid? userId, DateTime? from, DateTime? to, string form)
{
StringBuilder sCondition = new StringBuilder("WHERE 0=0");
if (userId != null && userId != Guid.Empty)
sCondition.Append(string.Format(" AND UserId = '{0}' ", userId));
if (!string.IsNullOrEmpty(form))
sCondition.Append(string.Format(" AND FormName = '{0}' ", form));
string query = string.Format("SELECT * FROM Common.TbHistoryLog {0}", sCondition);
Audits = new ObservableCollection<HistoryLog>(oContext.Database.SqlQuery<HistoryLog>(query).ToList());
}
的Audits
屬性:
public ObservableCollection<HistoryLog> Audits
{
get
{
return audits;
}
set
{
audits = value;
}
}
ObservableCollection<HistoryLog> audits;
,這是爲處理程序按鈕:
private void BtnSearch(object sender, RoutedEventArgs e)
{
var userId = ((TbUsers)cmbUsers.SelectedItem)?.UserId;
var from = dtFromDate.Value;
var to = dtToDate.Value;
var form = ((BlCommon.TbObjects)cmbForms.SelectedItem)?.ObjectRealName;
using (ClsUserTransactions oUserTrans = new ClsUserTransactions())
{
oUserTrans.GetAudits(userId, from, to, form);
}
}
但是當我點擊按鈕,dataGrid沒有得到更新與th Ë審計收集:
<DataGrid Name="gvHistory" Grid.Column="0" Grid.Row="9" Margin="2" Visibility="Visible" ItemsSource="{Binding Audits}" Grid.ColumnSpan="8" IsReadOnly="True" Grid.RowSpan="2" AutoGenerateColumns="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" CanUserAddRows="False"/>
當我調試,我注意到,吸氣塊不打
在ViewModel中實現INotifyPropertyChanged,並在setter中爲「審計」屬性提出PropertyChanged事件 – ASh
可觀察集合屬性應爲只讀。他們向用戶界面提供更改通知。添加和刪除集合中的元素,請勿替換集合。 – Will