在我的WPF应用程序中,我在主窗体上有一个ListView,它显示来自DataSet的绑定数据.当用户双击ListView中的行时,它会打开一个详细信息窗口.
在我的XAML中,我使用样式在listview上创建双击处理程序:
<Style x:Key="ListViewDoubleClick" TargetType="{x:Type ListViewItem}">
<EventSetter Event="MouseDoubleClick" Handler="HandleDoubleClick" />
</Style>
...
<ListView Name="searchResults" ItemContainerStyle="{StaticResource ListViewDoubleClick}>
Run Code Online (Sandbox Code Playgroud)
在代码隐藏中,我有一个跟踪打开的详细信息窗口的字典(多个可以一次打开),这样如果一个细节窗口已经打开,它就会被带到前面.我像这样处理双击:
private void HandleDoubleClick(object sender, MouseEventArgs e)
{
DataRowView clickedRow = ((ListViewItem)sender).Content as DataRowView;
int row = (int)clickedRow.Row["ID"];
if (!displayedCards.ContainsKey(row))
{
DetailWindow window = new DetailWindow(RetrieveData(row));
//window.Owner = this;
displayedCards.Add(row, window);
window.Show();
}
else
{
displayedCards[row].Activate();
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,使用上面的代码,在主窗体后面打开详细信息窗口.如果我设置了所有者信息(window.Owner = this),则会在主窗体的顶部打开详细信息窗口,但主窗体永远不会出现在详细信息窗口的前面.
该displayedCards[row].Activate()作品如我所料,使这一详细信息窗口中的所有其他细节窗口的前面,但它属于受害者同样的问题上面-它不会在主窗口中名列前茅.
我想要完成的是将详细信息窗口放在与主窗口相同的层/层(/ z顺序?)上,以便两者可以在彼此的顶部显示,并使详细信息窗口显示在打开时的主要形式.
编辑:如果重要,详细信息窗口没有WindowStyle,AllowsTransparency并设置为true.我也没有窗口标题,窗口没有出现在任务栏中.当试图解决这个问题时,我尝试设置WindowStyle为SingleBorderWindow,并出现同样的问题,除了详细信息窗口的边框显示在主窗体的顶部,因为正在绘制细节窗口,然后它被推到主要的后面形成.在显示详细信息窗口后,我的双击处理程序是否可以将主窗体拉到前面?
我有一个包含 SQLSELECT语句的字符串。
我想知道如何在屏幕上输出该语句的执行结果,执行将使用本机动态 SQL ( EXECUTE IMMEDIATE) 完成。
例子:
DECLARE
v_stmt VARCHAR2 := 'SELECT * FROM employees';
BEGIN
EXECUTE IMMEDIATE v_stmt; -- ??? how to output result of that select on the screen.
END;
Run Code Online (Sandbox Code Playgroud)
重要说明:表的结构可以是任意的。我必须编写一个接受表名作为参数的过程,所以我不能对表结构进行硬编码,也不想这样做。
感谢您的回复。任何想法非常感谢/
什么是SQLite查询以检测是否已安装FTS3扩展模块?还是可以通过SQLite3查询获取已安装扩展的列表?它必须与pysqlite2一起使用。
我知道我可以使用获取表列表SELECT * FROM sqlite_master,我想为扩展列表获取类似的内容。我也知道CREATE VIRTUAL TABLE v USING FTS3 (t TEXT)安装了FTS3会成功,但是我想获取没有副作用的查询(甚至不创建临时表)。
解决方法是打开":memory:"数据库,并发出CREATE VIRTUAL TABLE上面的命令。
如何从SQL数据库中读取日期时间字段?
这不起作用:
emp.DateFacturation = (DateTime)(dr["DateFacturation"])
Run Code Online (Sandbox Code Playgroud)
这也不是:
emp.DateFacturation = DateTime.Parse(dr["DateFacturation"].toString());
Run Code Online (Sandbox Code Playgroud) 我有一个层次结构,其中一个部门包含团队和团队包含代表.我要做的是获取一个给定部门下存在的代表列表.我试过这样做:
var teams = from tms in db.Teams
where tms.DepartmentID == DepartmentID
select tms;
var TeamDelegates = from tds in db.J_TeamDelegates
where tds.TeamID in teams.TeamID //error here
select tds;
Run Code Online (Sandbox Code Playgroud)
但是团队集合不允许您将特定属性称为集合.我想说的是"在团队集合中选择所有具有TeamID的代表."
我正在尝试使用jQuery添加表单字段(wordpress中的联系人7表单).它有隐藏的字段,用jQuery显示.
我刚刚完成了一个工作正常的jsFiddle:http://jsfiddle.net/Mangomeat/SfTyG/1/
我的javascript:
$(document.body).click(function () {
$("div:hidden:first").fadeIn("slow");
});
Run Code Online (Sandbox Code Playgroud)
但是当我将jQuery函数放入我的wordpress测试页面时,我无法让它工作.
我正在尝试检查数组中的给定元素是否大于它的两个相邻元素,但是array [element + 1]返回 - undefined.但是,当我尝试使用array1 [(element-1)+2]时,它的工作正常.
这是数组:
var array1 = [1, 5, 56, 6, 7, 8, 12, 5, 1];
Run Code Online (Sandbox Code Playgroud)
我的代码:
function biggestOfThree(element){
if((element == 0)||(element == array1Length-1)){
document.write("There aren't 2 adjacent elements in the array");
}
else{
if((array1[element]>array1[element+1])&&(array1[element]>array1[element-1])){
document.write(array1[element] + " is bigger than it's adjacent elements")
}
else{
document.write(array1[element] + " isn't bigger than it's adjacent elements")
}
}
}
Run Code Online (Sandbox Code Playgroud)
...以及用户接收元素的功能:
function assign(){
var i_element = document.getElementById('indexOfTheElement');
var i = i_element.value;
biggestOfThree(i)
}
Run Code Online (Sandbox Code Playgroud) 我需要使用Base64对字符串进行编码.我有一个VB6算法,我需要准确编写一个C#版本.我能够把它弄好99%,但最后一个角色是错的,我不确定到底出了什么问题.
这是要编码的字符串:
¼9ÀPʨ!Œaøc4vøÝFãgïÒ_£¡到e/[T•Ôý56wBpïcÃ.Cð`
VB6编码提供以下字符串:
vDnAUMqoFiGMYfhjNHb43UbjZ +/SX6MBoZjoL1t0ldT9NTZ3QnDvYwMTww4uQ /银
C#编码提供以下字符串:
vDnAUMqoFiGMYfhjNHb43UbjZ +/SX6MBoZjoL1t0ldT9NTZ3QnDvYwMTww4uQ /斧
正如你所看到的,除了最后一个字母外,一切都是一样的.
VB6算法:
Const sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Function Base64encode(ByVal asContents)
Dim lnPosition
Dim lsResult
Dim Char1
Dim Char2
Dim Char3
Dim Char4
Dim Byte1
Dim Byte2
Dim Byte3
Dim SaveBits1
Dim SaveBits2
Dim lsGroupBinary
Dim lsGroup64
If Len(asContents) Mod 3 > 0 Then asContents = asContents & String(3 - (Len(asContents) Mod 3), " ")
lsResult = ""
For lnPosition = 1 To Len(asContents) Step 3
lsGroup64 = ""
lsGroupBinary = …Run Code Online (Sandbox Code Playgroud) 我正在尝试将文本框中的数据输入到SQL数据库中,当我这样做时,它只插入空字段.
我的代码:
sqlCommand = new SqlCommand("INSERT INTO Department (Description, Comments, Permissions, Active, Production) VALUES (@description, @comments, @permissions, @active, @production)", sqlConnection);
sqlCommand.Parameters.Add("@description", SqlDbType.NVarChar, 50);
sqlCommand.Parameters.Add("@comments", SqlDbType.NVarChar, 50);
sqlCommand.Parameters.Add("@permissions", SqlDbType.NVarChar, 50);
sqlCommand.Parameters.Add("@active", SqlDbType.Int);
sqlCommand.Parameters.Add("@production", SqlDbType.Int);
sqlCommand.Parameters.AddWithValue("@description", txtDescription.Text);
sqlCommand.Parameters.AddWithValue("@comments", txtComments.Text);
sqlCommand.Parameters.AddWithValue("@permissions", txtPermissions.Text);
sqlCommand.Parameters.AddWithValue("@active", Convert.ToString(Convert.ToUInt32(chkActif.Checked)));
sqlCommand.Parameters.AddWithValue("@production", Convert.ToString(Convert.ToUInt32(chkProduction.Checked)));
sqlCommand.ExecuteNonQuery();
Run Code Online (Sandbox Code Playgroud) 这是我写的代码:
// create a view in dialog box
final View fileView = getLayoutInflater().inflate(R.layout.filename, null);
String[] array_spinner = new String[5];
array_spinner[0]="1";
array_spinner[1]="2";
array_spinner[2]="3";
array_spinner[3]="4";
array_spinner[4]="5";
Spinner s = (Spinner) findViewById(R.id.sp_CAT);
ArrayAdapter adapter = new ArrayAdapter(this,
android.R.layout.simple_spinner_item, array_spinner);
s.setAdapter(adapter);
s.setSelection(2);
//Spinner mCAT = (Spinner) findViewById(R.id.sp_CAT);
//ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
//fileView.getContext(), R.array.a_CAT, android.R.layout.simple_spinner_item);
//adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//mCAT.setAdapter(adapter);
EditText mSID = (EditText) fileView.findViewById(R.id.et_SID);
EditText mSCD = (EditText) fileView.findViewById(R.id.et_SCD);
EditText mNUM = (EditText) fileView.findViewById(R.id.et_NUM);
final String tSID=mSID.getText().toString();
final String tSCD=mSCD.getText().toString();
final String tNUM=mNUM.getText().toString();
// show dialog box …Run Code Online (Sandbox Code Playgroud) 我在我的for循环中使用数组长度作为测试条件.但是如果数组中只有一个元素,我会收到"索引超出数组范围"错误.我究竟做错了什么?谢谢.
string templateList;
string[] template;
string sizeList;
string[] size;
templateList = textBox1.Text;
template = templateList.Split(',');
sizeList = textBox2.Text;
size = sizeList.Split(',');
for (int i = 0; i <= template.Length; i++)
{
for (int j = 0; j < size.Length; j++)
{
//do something with template[i] and size[j]
}
}
Run Code Online (Sandbox Code Playgroud)
值来自textBox,用户只能输入一个值.在这种情况下,它只需要运行一次.
我不确定这是如何成为显示值,因为我没有在我的应用程序中指定任何位置.
<DatePicker Grid.Column="1" Grid.Row="3"
Height="25"
HorizontalAlignment="Left"
Margin="12,1,0,0"
x:Name="datePicker_dob"
Validation.Error="Validation_Error"
SelectedDate="{Binding UpdateSourceTrigger=PropertyChanged,
Path= dob,
ValidatesOnDataErrors=True,
NotifyOnValidationError=True}"
VerticalAlignment="Top"
Width="115"
SelectedDateFormat="Short" />
Run Code Online (Sandbox Code Playgroud)