我有一个带有no-args构造函数的对象类型,但是当我将它指定为该类型列的默认值时,我得到ORA-00904:无效的标识符错误.
例:
CREATE OR REPLACE TYPE test_t AS OBJECT
(
val NUMBER(10),
CONSTRUCTOR FUNCTION test_t return self as result
)
CREATE OR REPLACE TYPE BODY test_t AS
CONSTRUCTOR FUNCTION test_t RETURN SELF AS RESULT IS
BEGIN
val := 1;
RETURN;
END;
END;
CREATE TABLE test_table (
test_attr test_t DEFAULT new test_t()
)
Error: ORA-00904: "INKA"."TEST_T"."TEST_T": invalid identifier
如果我用例如test_t(1)替换DEFAULT,它可以工作,但是那种打破了OO封装范例,我希望所有相同类型的字段具有相同的默认"默认值"(希望你知道我的意思:-)
我在这里遗漏了什么,或者这是正常的,并且不可能使用像这样的非默认构造函数?
我有一个带有网格的窗口,其中包含两个文本框。其中之一具有键盘焦点。如果我禁用 Grid 并在一段时间后重新启用它,键盘焦点不会恢复到以前持有它的 TextBox。
实际发生的是光标显示但不闪烁......
我已经尝试在 Grid 的 IsEnabledChanged 事件中将焦点设置在 TextBox 上,但是我尝试过的方法都不起作用(Keyboard.SetFocus、txtBox.Focus、FocusManager 方法...)
注意:我在 Dispatcher 线程中禁用和启用了 Grid,所以这不是线程问题。此外,Keyboard.FocusRestoreMode 设置为 Auto。
有没有人遇到过这个问题?有没有解决的办法?我设法推断出,当 Grid 的 IsEnabledChanged 触发时,TextBox 仍处于禁用状态。但是我找不到当 Grid 的内容也被启用时会触发的事件。
我一直在寻找解决方案,但没有找到任何有效的方法。
问题很简单:
我已经尝试使用带有 EventTrigger (TargetUpdated) 的样式来启动 Storyboard,但它有副作用,当 DataGrid 首次填充时以及滚动或重新排序时,所有单元格的背景都会动画。
我知道还有其他一些类似的问题,但我没有看到可行的解决方案。
有没有人能够做到这一点?我非常不想有任何代码隐藏,但如果有必要,我会忍受它......
编辑:
我注意到对于我想要实现的目标存在一些混淆:
假设一个单元格(它是数据对象的基础属性)具有值“A”。在某些时候它会变成“B”(例如从服务器更新)。此时背景应该“闪烁”(例如从红色到透明的 1 秒动画)。在所有其他时间背景应该是透明的。