我是MVVM模式的新手,对于何时使用Code Behind有点困惑.我现在有一个非常简单的表单,包括一个TextBox和一个DataGrid.我想要的是能够让DataGrid根据TextBox更改其选定的项目.
我在Code Behind中完成了这项工作,使用以下代码可以正常工作:
private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
{
for (int i = 0; i < dataGrid1.Items.Count; i++)
{
string cellContent = dtReferral.Rows[i][0].ToString();
try
{
if (cellContent != null && cellContent.Substring(0, textBox1.Text.Length).Equals(textBox1.Text))
{
object item = dataGrid1.Items[i];
dataGrid1.SelectedItem = item;
dataGrid1.ScrollIntoView(item);
//row.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
break;
}
}
catch { }
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我只想突出显示Datagrid中以文本框中的文本开头的项目,并允许用户按下按钮来编辑所选项目.
在Code Behind文件中有这个逻辑是否可以?或者我需要通过某种绑定来做到这一点?如果我应该通过带有绑定的视图模型执行此操作,任何方向都将受到赞赏.谢谢.
这是一项家庭作业。将以下递归深复制方法更改为迭代等效方法。我已经很接近了,需要你的帮助来纠正它。递归实现:
public static StringNode copy(StringNode str) {
if (str == null)
return null;
StringNode copyFirst = new StringNode(str.ch, null);
copyFirst.next = copy(str.next);
return copyFirst;
}
Run Code Online (Sandbox Code Playgroud)
这是我想出的,迭代的等价物。该static length()方法已经实现,用于返回给定链接列表中有多少个节点。
public static StringNode copy(StringNode str) {
if (str == null)
return null;
StringNode firstNode = new StringNode(str.ch ,null);
StringNode prevNode = firstNode;
StringNode nextNode;
for (int i = 1; i < length(str); i++) {
nextNode = new StringNode(str.next.ch, null);
prevNode.next = nextNode;
prevNode = nextNode;
}
return firstNode;
}
Run Code Online (Sandbox Code Playgroud)
str1问题:为了测试我的实现,我创建了一个包含字符值 …
在 sqlplus 中执行时,需要一种将 PL/SQL 程序错误消息重定向到日志文件的方法。
假设 PL/SQL 程序被命名send_2012.sql并且它有以下异常块
EXCEPTION
WHEN NO_DATA_FOUND
THEN
var_err := 'Data not found. ';
WHEN OTHERS
THEN
var_err := 'Error in '
|| $$plsql_unit
|| ' | '
|| SQLERRM
|| ' | '
|| 'Details: '
|| DBMS_UTILITY.format_error_backtrace;
END;
Run Code Online (Sandbox Code Playgroud)
要在 KornShell (ksh) 脚本中运行 PL/SQL 程序,我有:
sqlplus some_username/'some_password' @some_database \
@/some/directory/send_2012.sql \
$parameter1 $paramenter2
Run Code Online (Sandbox Code Playgroud)
假设执行时发生错误send_2012.sql,如何将错误消息从 var_err 重定向到/some/log/directory/log_send_2012.txt?
非常感激。
如何在PL/SQL中使用BULK COLLECT和FORALL替换CURSOR FOR LOOP?我想有一种更有效的方法来更新单个表中的记录.
假设我有以下PL/SQL代码:
DECLARE
var_buy_more_shoes inventory.buy_more_shoes%TYPE := NULL;
var_buy_more_bananas inventory.buy_more_bananas%TYPE := NULL;
var_buy_more_iphone6s inventory.buy_more_iphone6s%TYPE := NULL;
CURSOR cur
IS
SELECT *
FROM inventory
FOR UPDATE;
BEGIN
FOR rec IN cur
LOOP
IF rec.pair_of_shoes_left <= 100
THEN
var_buy_more_shoes := 'Yes';
END IF;
IF rec.weight_of_bananas_left <= 200
THEN
var_buy_more_bananas := 'Yes';
END IF;
IF rec.number_of_iphone6s_left <= 50
THEN
var_buy_more_iphone6s := 'Yes';
END IF;
UPDATE inventory a
SET A.buy_more_shoes = var_buy_more_shoes,
A.buy_more_bananas = var_buy_more_bananas,
A.buy_more_iphone6s = var_buy_more_iphone6s
WHERE CURRENT OF cur; …Run Code Online (Sandbox Code Playgroud)