我正在使用带有滚动条的控件内部的Infragistics XamDataGrid.父控件中有几个其他控件,我需要能够在父控件中自由滚动.但是,只要鼠标悬停在XamDataGrid上,XamDataGrid就会窃取父焦点并锁定父控件的滚动条.
我玩了几个属性.将Focusable属性设置为 false不解决问题.将IsEnabled属性设置为false有效,但它禁用了整个网格并阻止了与网格的任何交互(duh).
有没有办法删除/禁用XamDataGrid的滚动功能,以使其父元素可以自由滚动,而无需更改XamDataGrid的其他功能(即不完全禁用与网格的交互)?
编辑:
真正让我对这个问题感兴趣的是它似乎并不仅仅与XamDataGrid隔离.我发现Infragistics控件有一个东西可以在他们不应该和类似的好事行为时窃取焦点.
当然,许多这些问题可能都是在逐个控制的基础上解决的,但我不能动摇那种有更好的总体解决方案的感觉,特别是在通过控制属性进行梳理无法产生预期结果时.
我正在使用C#和WPF开发应用程序,在其中我需要绑定到字典并显示键值对。ListBoxes与ComboBoxes有何不同?使用一个相对于另一个可能有哪些优缺点?
我不断发现自己需要一个必须在方法范围之外声明的常量,但只能在方法内部赋值.结果是我必须在分配值之前对方法中的值进行空值检查,但是在那时我不能使常量变为常量.
是否有可以处理此问题的本机C#修饰符?如果没有,它是否存在于类似语言中?为什么它不存在于C#中?
这里有一个类似的帖子:有没有办法只在C#中设置一次属性
但它主要侧重于使用getter和setter进行空值检查
我正在开发一个需要访问公共字符串的应用程序.但是,我也希望限制写访问权限.因为我有很多字符串,所以我想避免为每个字符串设置一个getter和private setter.
见下面的代码:
public readonly string privateMem, peakVM, peakPaged, pagedSysMem, pagedMem, nonpagedSysMem;
public override void Capture()
{
using (Process p = Process.GetCurrentProcess())
{
// Throws error as privateMem can't be assigned a value
privateMem = string.Format("{0:N0} K", p.PrivateMemorySize64 / 1024);
peakVM = string.Format("{0:N0} K", p.PeakVirtualMemorySize64 / 1024);
peakPaged = string.Format("{0:N0} K", p.PeakPagedMemorySize64 / 1024);
pagedSysMem = string.Format("{0:N0} K", p.PagedSystemMemorySize64 / 1024);
pagedMem = string.Format("{0:N0} K", p.PagedMemorySize64 / 1024);
nonpagedSysMem = string.Format("{0:N0} K", p.NonpagedSystemMemorySize64 / 1024);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道有一些方法可以使用反射为readonly字段赋值,但是我从其他几个stackoverflow问题中收集到这是一个可怕的想法.
总之:
1.如何在没有反射的情况下为只读字符串赋值,或者在不使用详细的getter和setter的情况下是否存在更好的解决方案? …