小编nas*_*kew的帖子

WMI USB监视器已触发多个事件

我一直在尝试监控何时插入或移除USB设备,它似乎工作得很好.现在唯一困扰我的是每次插入设备或删除设备时多次触发事件.

我可以毫无问题地对事件进行分组,但我很好奇为什么它首先发生.

这是我正在使用的查询

SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2 or EventType = 3
Run Code Online (Sandbox Code Playgroud)

插入或移除设备时会触发.以下修改版本......

SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2 or EventType = 3 GROUP WITHIN 1
Run Code Online (Sandbox Code Playgroud)

将事件分组1秒钟.有人可以解释为什么事件被多次触发?

为了完整起见,这里是代码的其余部分.

        static void Main(string[] args)
    {
        var watcher = new ManagementEventWatcher();
        var query = new WqlEventQuery("SELECT * FROM Win32_DeviceChangeEvent WHERE EventType = 2 or EventType = 3 GROUP WITHIN 1 ");
        watcher.EventArrived += new EventArrivedEventHandler(watcher_EventArrived);
        watcher.Query = query;
        watcher.Start();

        Console.WriteLine("Press a key to exit.");
        Console.ReadKey();
    }

    static void …
Run Code Online (Sandbox Code Playgroud)

usb wmi

6
推荐指数
1
解决办法
1726
查看次数

有没有选择的WPF列表视图?

我正在开发的应用程序有一种由扩展器组成的手风琴,但每个扩展器独立运行,而不是一次只允许一个打开的项目.每个扩展器都与视图模型中集合中的项相关.

我目前的解决方案是使用列表框,然后将列表itemsource绑定到集合,并使项目模板呈现扩展器和扩展器内容.

问题是列表框将每个扩展器视为一个项目(显然),并允许选择和突出显示.突出显示有点难看,可能会被禁用,但选择会导致一些问题,因为它会导致列表滚动显示尽可能多的扩展扩展器.

是否有一个WPF控件有点像stackpanel(可能),它允许我使用项目模板绑定包含的控件但没有选择和突出显示?

在此输入图像描述

            <ListBox Grid.Row="0" Grid.Column="0" Width="Auto" SelectionMode="Single" ItemsSource="{Binding Path=MeasurementSources}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Expander  Header="{Binding Name}" IsEnabled="{Binding Available}">
                        <ListBox Width="Auto" SelectionMode="Single"
                                ItemsSource="{Binding Path=Measurements}"
                                SelectedItem="{Binding Path=SelectedMeasurement}">
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <WrapPanel>
                                        <TextBlock Text="{Binding Name}" FontWeight="Bold" />
                                        <TextBlock Text=" "/>
                                        <TextBlock Text="{Binding Created}"/>
                                    </WrapPanel>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>
                    </Expander>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
Run Code Online (Sandbox Code Playgroud)

wpf wpf-controls

6
推荐指数
1
解决办法
8152
查看次数

编译绑定的时间检查?

我是MVVM的新手,我理解MVVM的一些好处,而不是xaml背后的简单代码(例如VM的可测试性).我们正在使用Caliburn Micro来执行某些绑定,但这有点无关紧要,我可以使用特定的绑定{绑定...},我的问题或多或少会保持不变.

我理解VM如果一切都正确完成就不应该知道V的逻辑,但似乎因为我们在V和VM之间使用动态运行时绑定,编译器无法检查每个绑定的合法性表达.例如,如果我有一个名为UserName的UI组件,然后将卡利尝试绑定,要叫用户名在运行时VM性能(类似于做这样的事情的价值="{绑定用户名}").但是,如果我重命名我的VM属性或拼错UI组件名称或绑定表达式,我们在运行时之前没有任何问题的迹象.

在我看来,能够告诉xaml UI组件或页面将被绑定到特定接口将是非常好的,这样编译器就可以完成一些必须完成的工作(由测试部门(这是我经常).

有没有办法告诉xaml我们绑定到接口或对象类型?是否有一些工具可以插入xaml应用程序来验证绑定?

silverlight wpf xaml binding mvvm

5
推荐指数
1
解决办法
1448
查看次数

标签 统计

wpf ×2

binding ×1

mvvm ×1

silverlight ×1

usb ×1

wmi ×1

wpf-controls ×1

xaml ×1