我要做的是在刷新我的BO之前获取最后一个焦点元素,并将它设置回最后一个焦点的值。
想法类似于以下内容:
//get last focus element
var x = Keyboard.FocusedElement;
//refresh my businessobject here
CallMethod();
//set the focus to my last element
FocusManager.SetFocusedElement(focusScope, x);
..。但这里的问题是,在调用刷新对象方法后,我的"x“值在此过程中发生了更改。
有没有人遇到过这个问题?
嗨我希望我能在这里找到一些帮助..。
我正在使用棱镜和MVVM创建一个WPF应用程序。
我正在尝试创建一个附加属性,我找到了。
在我的ViewModel中,我通过
var control = Keyboard.FocusedElement;
那我就知道
string value = ExtraTextBehaviourObject.GetExtraText(control as UIElement);
但是返回的值总是空的..。谁能给我指明正确的方向?
更新
public class ExtraTextBehaviourObject : DependencyObject
{
我在我的应用程序中广泛地使用CommandBinding to RoutedUICommand。它们中的大多数都有可在全球范围内使用的快捷键。
对于某些命令,我希望使用单键快捷键,不带修饰符-例如,键盘'+‘(Key.Add)。这一切都运行得很好,除了当文本输入控件(例如TextBox)被聚焦时,全局命令仍然优先,使用键并且不允许键入它,而是执行命令。然而,我确实希望在这种情况下键入密钥,并阻止命令快捷方式。
有没有一种相当简单的方法来实现这一点?
我正在通过InputManager编程地将一些文本发送到TextBox,但在更改文本之前,它不会触发PreviewTextInput。
具有屏幕键盘的WPF应用程序。在某些情况下(输入货币等)在引入TextBox之前,需要对文本进行验证。
var target = TKeyboard.FocusedElement;
var eventArgs = new TextCompositionEventArgs(
Keyboard.PrimaryDevice,
new TextComposition(InputManage
如何获得当前关注XAML应用程序的文本框的名称?
我尝试了下面的方法,但是继续获得以下错误消息:Object reference not set to an instance of an object。我做错了什么?
var textbox = Keyboard.FocusedElement as TextBox;
MessageBox.Show(textbox.Name);
在VB6中,可以使用空数组索引预置数组标识符。例如:
Dim x(0 To 20) As Integer
x(0) = 1
Debug.Print x(0)
Debug.Print x()(0)
调试语句看起来是一样的,即使在最后一条语句中的索引之前为数组提供了一个空索引。有没有人知道这是什么,为什么会起作用?
注:,这不是一个副本。问为什么可以投空,我的问题是null和(type)null之间的区别是什么。
在引用(来自MSDN C#引用)中,据说此代码:
expression as type
与此代码等效(“除非expression变量只计算一次”):
expression is type ? (type)expression : (type)null
这让我想知道,空铸造有什么意义?这与以下情况有何不同:
expression is type ? (type)expression : null
谢谢!