Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf WFP C#ListView数据绑定用于动态更新_Wpf_Xaml_Listview_Uwp - Fatal编程技术网

Wpf WFP C#ListView数据绑定用于动态更新

Wpf WFP C#ListView数据绑定用于动态更新,wpf,xaml,listview,uwp,Wpf,Xaml,Listview,Uwp,请帮忙 我正在更新一个需要在ListView中动态显示报警数据的应用程序。 当前,当数据到达时,将以图形方式评估和显示报警条件 在XAML控件中,使用自定义UserControls和INotifyPropertyChanged中的DependencyProperties MainViewModel中的事件。这可以很好地更改字段的颜色 根据需要进行实时更新 我的任务是实现一些报警逻辑,例如用户确认活动状态 报警等。为此,我将报警详细信息写入一个LocalDB实例,并 在ListView页面中显示它

请帮忙

我正在更新一个需要在ListView中动态显示报警数据的应用程序。 当前,当数据到达时,将以图形方式评估和显示报警条件 在XAML控件中,使用自定义UserControls和INotifyPropertyChanged中的DependencyProperties MainViewModel中的事件。这可以很好地更改字段的颜色 根据需要进行实时更新

我的任务是实现一些报警逻辑,例如用户确认活动状态 报警等。为此,我将报警详细信息写入一个LocalDB实例,并 在ListView页面中显示它们。当我加载 当我导航到页面时,dB带有一个加载的事件,但是当我在页面上 似乎无法使用更新数据的相同方法获取要实时更新的数据 图形颜色

我创建了一个类来保存从Db so填充的LV样式的字符串数据 这不应该有什么问题。我不想发布太多代码, 但是有人能告诉我是否应该用 单个数据绑定,还是可以依赖可以传递整个数据的数据绑定 低压报警等级

    public class LVAlarmItem
    {
        public string Name { get; set; }
        public string Status { get; set; }
        public string Raised { get; set; }
        public string Id { get; set; }
        public string Ack { get; set; }
    }
    public ObservableCollection<Alarm> AlarmList = new ObservableCollection<Alarm>(); //Real alarms from Db
    public ObservableCollection<LVAlarmItem> LVAlarmItems = new ObservableCollection<LVAlarmItem>(); 
此XAML适用于_加载的事件:

    <ListView.View>
        <GridView>
            <GridViewColumn Header="Name" Width="300" DisplayMemberBinding="{Binding Name}" />
            <GridViewColumn Header="Status" Width="300" DisplayMemberBinding="{Binding Status}" />
            <GridViewColumn Header="Raised" Width="300" DisplayMemberBinding="{Binding Raised}" />
            <GridViewColumn Header="Id" Width="250" DisplayMemberBinding="{Binding Id}" />
            <GridViewColumn Header="Acknowledged" Width="200" DisplayMemberBinding="{Binding Ack}" />
        </GridView>
    </ListView.View>

老实说,我觉得我的LV应该直接安装警报,但我想我应该先让它使用更简单的结构。对于MVC来说,这没有帮助,希望我的问题有意义

更多信息:我正在尝试将我的主XAML页面绑定到用户控件:

其中,在我拥有的用户控件的cs中:

    {
        public static readonly DependencyProperty MainAlarmListProperty = DependencyProperty.Register(
            "MainAlarmList", typeof(ObservableCollection<AlarmManager.LVAlarmItem>), typeof(AlarmList), new PropertyMetadata(OnPropertyChanged));
        public void Render()
        {

        }

        public ObservableCollection<AlarmManager.LVAlarmItem> MainAlarmList
        {
            get { return (ObservableCollection<AlarmManager.LVAlarmItem>)GetValue(MainAlarmListProperty); }
            set { SetValue(MainAlarmListProperty, value); }
        }
{
公共静态只读DependencyProperty MainAlarmListProperty=DependencyProperty.Register(

“MainAlarmList”,typeof(ObservableCollection

您试图如何以及在何处更新数据?如果有帮助的话,我在原始帖子中添加了更多信息。MainAlarmList应该在生成新报警时更新,然后作为ObservableCollection/Dependency属性触发刷新,这是一般的想法。
    {
        public static readonly DependencyProperty MainAlarmListProperty = DependencyProperty.Register(
            "MainAlarmList", typeof(ObservableCollection<AlarmManager.LVAlarmItem>), typeof(AlarmList), new PropertyMetadata(OnPropertyChanged));
        public void Render()
        {

        }

        public ObservableCollection<AlarmManager.LVAlarmItem> MainAlarmList
        {
            get { return (ObservableCollection<AlarmManager.LVAlarmItem>)GetValue(MainAlarmListProperty); }
            set { SetValue(MainAlarmListProperty, value); }
        }