我有一个元素,我需要获得一系列特定属性.例如:
<div id="myDiv" class="myClass" data-country="US" data-city="NY" />
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我需要获取所有data-*属性并将它们放在数组(名称和值对)中.
在此示例中,final数组将如下所示:
myDataArray["data-country"] = "US";
myDataArray["data-city"] = "NY";
Run Code Online (Sandbox Code Playgroud)
问题是这些属性是动态的,我不知道在运行时会有什么属性,我不能硬编码数组的填充.
我试图WPF在动画完成时为一些东西设置动画并运行一些其他操作。
另外,想避免动画完成回调机制,所以,我想出了一个解决方案,如下面的代码所示:
// Start one second of animation
...
// Pause for one second
Wait(this.Dispatcher, 1000);
// Continue and do some other stuff
...
Run Code Online (Sandbox Code Playgroud)
现在,有趣的部分是Wait方法,它神奇地使我的代码中的阻塞暂停,但动画和 UI 保持正常、响应:
public static void Wait(Dispatcher Dispatcher, int Milliseconds)
{
var Frame = new DispatcherFrame();
ThreadPool.QueueUserWorkItem(State =>
{
Thread.Sleep(Milliseconds);
Frame.Continue = false;
});
Dispatcher.PushFrame(Frame);
}
Run Code Online (Sandbox Code Playgroud)
我已经阅读了有关文档和几篇文章,DispatcherFrame但我仍然无法弄清楚幕后真正发生了什么,我需要澄清一下这种结构是如何PushFrame真正起作用的。
当我比较输入的两个变量object并且两者都包含相同的值时,使用==运算符的比较结果产生false.
object Var1 = "X";
object Var2 = "X";
// This produces false result
bool Match = Var1 == Var2;
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
编辑:上面是实际工作的代码!
我基于我的真实代码,它看起来像这样,不起作用:
ChoiceValue = Choice.GetValue(FieldTemplate.ValueDataType);
if (ChoiceValue == Field.Value) RadioButton.IsChecked = true;
Run Code Online (Sandbox Code Playgroud)
ChoiceValue是object和也是Field.Value属性类型object.
显然在不同情况下的工作方式不同.
以下是用于ajax结果的匿名对象的示例:
public ActionResult SomeActionMethod() {
return Json(new {foo="bar", baz="Blech"});
}
Run Code Online (Sandbox Code Playgroud)
这很简单,但有这样的事情:
public ActionResult SomeActionMethod() {
var result = new ????
result["foo"] = "bar";
// Do some other stuff
...
result["john"] = "doe";
// Do some other stuff
...
return Json(result);
}
Run Code Online (Sandbox Code Playgroud)
我希望避免为结果创建自定义类,我更喜欢上面显示的内容.