我正在学习WPF中的MVVM和命令.我有几个按钮,我想触发类似的命令,具体取决于使用鼠标左键或右键单击按钮的事实.
到目前为止,我使用了事件处理程序,通过检查MouseButtonEventArgs,我能够确定按下了哪个鼠标按钮.
<Button Content="Command Test" PreviewMouseDown="Button_PreviewMouseDown"/>
Run Code Online (Sandbox Code Playgroud)
当前代码背后:
private void Button_PreviewMouseDown(object sender, MouseButtonEventArgs e)
if (e.LeftButton == MouseButtonState.Pressed) {
Debug.Print("Left");
}
else {
Debug.Print("Right");
}
}
Run Code Online (Sandbox Code Playgroud)
但是如果我使用命令,我看不到任何类似的东西.
如何为按钮设置不同的命令?单击鼠标左键时的一个命令和单击鼠标右键时的另一个命令?
<Button Content="Command Test" Command="{Binding PressLetterCommand, Mode=OneWay}"/>
Run Code Online (Sandbox Code Playgroud)
目前,只有在单击鼠标左键时才会触发命令.如果单击鼠标右键也会触发该命令,我可以找到单击的按钮,这也是一个解决方案.
我搜索了一下,发现这个问题和答案都使用了Decorator.如何在WPF中的ControlTemplate中将命令绑定到例如鼠标右键?我尝试过,但据我了解,这对我的按钮不起作用.
有什么建议?
我喜欢在Access 2010数据库中创建和更新表,查询,表单等时创建列表.
从理论上讲,这可以通过一些VBA代码实现,但不幸的是,这段代码显示了错误的信息.我自己测试了它,微软在这里证实了这一点:https://support.microsoft.com/en-us/kb/299554
Access在导航面板上显示正确的修改日期,但似乎无法通过VBA或任何表格访问此信息.前段时间我在互联网上搜索过这个问题,有几个人证实了这个问题,但没有人得到答案.
现在我的问题:有人知道如何从Access导出正确的修改日期信息(显示在导航面板中)?
如果这是不可能的(我目前的研究表明这一点),是否有人知道将一个数据库文件与另一个数据库文件进行比较并显示表格,查询,表格等的所有差异的可靠方法?
这完全是关于Access对象的设计,而不是关于表中存储的任何数据.
我在 PlatformIO 上为带有 ESP-IDF 框架的 ESP32 编写了一个小程序。
目前它已通过 USB 电缆连接到我的 PC。我从 CAN-BUS 接收大量数据,并使用 printf() 打印这些数据
标准波特率115200的输出似乎太慢了。这就是为什么我想将其设置为更高的值。
我在 platformio.ini 中更改了此设置,但没有成功。
monitor_speed = 115200
Run Code Online (Sandbox Code Playgroud)
我搜索了一下,没有找到哪里可以改变这个波特率。
如果可能的话,我的想法是添加一些代码,也许只是一两行,将值 ie 设置为 230400
我提到了 ESP32、PlatformIO 和 ESP-IDF,因为我不确定这个设置应该在哪里。
在 WPF ListView 中加载并显示所有项目后会触发哪个事件?我尝试优化在 ListView 中显示大量项目。ListView 填充了具有以下代码的项目:
List<Artist> selectedArtistsList;
//Code to fill selectedArtistsList with about 6,000 items not shown here
CollectionViewSource selection1ViewSource = ((CollectionViewSource)(this.FindResource("selection1Source")));
Stopwatch stopWatch1 = new Stopwatch();
stopWatch1.Start();
selection1ViewSource.Source = selectedArtistsList;
stopWatch1.Stop();
Debug.Print("Time used: {0}ms", stopWatch1.ElapsedMilliseconds.ToString());
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我看到“使用时间为 119 毫秒”或类似内容。但是在我在屏幕上看到 ListView 中的项目之前大约需要 3 秒钟。是否有在 ListView 加载项目后触发的事件?我有兴趣测量 ListView 何时为用户准备就绪。
我喜欢将文件从Windows资源管理器或Outlook邮件中的附件拖到MS-Access中.
我发现我已经可以使用Access BoundObjectFrame(https://msdn.microsoft.com/en-us/library/office/ff835725.aspx)作为目标来从Windows资源管理器中拖放文件.
通过以下代码,我看到有些内容被丢弃到了字段中:
Private Sub OLE1_GotFocus()
Debug.Print "OLE1_GotFocus()"
Debug.Print " OLE1.Value: " & OLE1.Value
End Sub
Run Code Online (Sandbox Code Playgroud)
但价值只是一些二进制信息.我想知道丢弃的文件名,或者我想读取删除文件中的内容(即删除文本文件).
我看了所有的属性,并在互联网上搜索,但我没有找到解决方案.我猜想很多人会在我想做之前尝试过.
有任何想法吗?
c# ×2
ms-access ×2
vba ×2
wpf ×2
.net ×1
access-vba ×1
baud-rate ×1
command ×1
datemodified ×1
esp-idf ×1
events ×1
listview ×1
mvvm ×1
serial-port ×1
stdout ×1