<ListView Name="LogView" FontFamily="Tahoma" FontWeight="Bold" Grid.Row="1" ItemsSource="{Binding}" >
<ListView.ItemContainerStyle >
<Style TargetType="ListViewItem">
<!--<Setter Property="Foreground" Value="{Binding Path=Severity, Converter={StaticResource Severity2Color1Converter}}"/>-->
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn Header="编号" Width="60" DisplayMemberBinding="{Binding AT_ID,UpdateSourceTrigger=PropertyChanged}"/>
<GridViewColumn Header="日期" Width="120" DisplayMemberBinding="{Binding EvtDateTimeLoc, StringFormat='yyyy年MM月dd日',UpdateSourceTrigger=PropertyChanged}" />
<GridViewColumn Header="时间" Width="120" DisplayMemberBinding="{Binding EvtDateTimeLoc, StringFormat='HH:mm:ss',UpdateSourceTrigger=PropertyChanged}"/>
<GridViewColumn Header="类别" Width="60" DisplayMemberBinding="{Binding Severity,UpdateSourceTrigger=PropertyChanged}"/>
<GridViewColumn Header="信号" Width="220" DisplayMemberBinding="{Binding Source,UpdateSourceTrigger=PropertyChanged}"/>
<GridViewColumn Header="日 志 消 息" Width="550" DisplayMemberBinding="{Binding Comment,UpdateSourceTrigger=PropertyChanged}"/>
<!--<GridViewColumn Header="应答人" Width="220" DisplayMemberBinding="{Binding AckUser}"/>
<GridViewColumn Header="应答时间" Width="350" DisplayMemberBinding="{Binding AckTime, StringFormat='yyyy年MM月dd日 HH:mm:ss'}"/>-->
</GridView>
</ListView.View>
</ListView>
后台
```c#
public logRuntime()
{
InitializeComponent();
InitData(DateTime.Today, DateTime.Now, "", "");
}
public async void InitData(DateTime dateTime,DateTime dateTime1,string type,string command)
{
LogView.ItemsSource = null;
BindingOperations.EnableCollectionSynchronization(auditTrails, alarmlock);
var data =await Data.Controller.AuditTrail.GetAuditTrails();
foreach (var item in data)
{auditTrails.Add(item); }
LogView.ItemsSource = auditTrails;
auditTrails.CollectionChanged += AuditTrails_CollectionChanged;
}
private void AuditTrails_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
var alamitem = e.NewItems[0] as AuditTrail;
if (CanShow(alamitem))
{
LogView.Dispatcher.BeginInvoke(() =>
{
auditTrails.Add(alamitem);
LogView.ScrollIntoView(alamitem);
});
}
}
```c#
public static async Task<IEnumerable<AuditTrail>> GetAuditTrails()
{
try
{
//using (var con = new SqliteConnection(SystemData.ConnectionConnString))
using (var con = SystemData.GetConnection())
{
//先加载SQL数据,然后清空sqlite,再插入
var audits = await con.QueryAsync<AuditTrail>("SELECT t1.AT_ID,t1.ATStructID,t2.Class,t2.ZT as Event,BatchStat,BatchNumber,EvtDateTimeLoc,Node,UserName,UserFullname,Comment,CommentAdd,WWVariable,ValueNew,ValueOld " +
$" FROM AuditTrail as t1 LEFT OUTER JOIN ATStructure t2 ON t1.ATStructID = t2.ATStructID Order BY EvtDateTimeLoc DESC limit 200");
Translate(audits);
return audits;
}
}
catch (Exception err)
{
SystemData.AddErrorLog(err);
return null;
}
}
首次界面启动的时候,数据可以正常显示,
这个时候,(我将界面的操作日志,全部存入数据库,这个时候,我操作的任何动作都会插入数据库当中,我切换至其他页面,在返回Log日志界面,查看,数据是否刷新)数据库 增加多行数据
UI不刷新。