当我第一次将数据加载到Silverlight DataGrid控件中时,如何使屏幕看起来就像用户刚刚单击第一列的标题一样?换句话说,数据应根据该列的值按升序排序,并且小排序箭头应显示在第一列的标题中.
假设这是可能的,我是否也可以看起来好像用户点击了第一列然后按住键点击第二列?换句话说,我可以以编程方式应用两部分排序并使屏幕看起来好像用户已经完成了吗?
我有一个DataGrid,在ArrayCollection中填充了对象.更新其中一个对象的字段后,我希望屏幕更新.数据源是不可绑定的,因为我在运行时构建它(我不明白如何使它在动态上可绑定 - 这是另一个问题).
在这种情况下,如果我在网格上调用InvalidateDisplayList()似乎没有发生任何事情.但是如果我调用invalidateList(),则会发生更新.(而且它也非常流畅 - 没有像我期望的那样在WIN32中使窗口无效.)
所以问题是:InvalidateList和InvalidateDisplayList之间有什么区别?从文档中看,似乎任何一个应该工作.
我最近安装了Windows 7,visual studio 2008和.net framework 3.5.
安装这些后,我无法找到.net框架配置工具.
它应位于%windir%\ Microsoft.net\framework\v2.0.507727 \中,文件名为mscorcfg.msc
我发现类似的唯一地方是%windir%\ Microsoft.net\framework\v1.0.3705,其中有名为mscormmc.cfg和mscormmc.dll的文件
知道从哪里获得配置工具?
我有一个datagrid,填充如下所示.当用户单击列标题时,我想使用词典排序对行进行排序,其中首先使用所选列,然后以从左到右的顺序使用其余列来打破任何关系.我该如何编码呢?
(我有一个答案,我将在下面发布,但它有一个问题 - 如果有人能提供更好的答案,我会很激动!)
这是布局:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" creationComplete="onCreationComplete()">
<mx:Script source="GridCode.as" />
<mx:DataGrid id="theGrid" x="61" y="55" width="466" height="317">
<mx:columns>
<mx:DataGridColumn dataField="A"/>
<mx:DataGridColumn dataField="B"/>
<mx:DataGridColumn dataField="C"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
Run Code Online (Sandbox Code Playgroud)
这是支持代码:
import mx.collections.ArrayCollection;
import mx.collections.Sort;
import mx.collections.SortField;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.events.DataGridEvent;
public function onCreationComplete():void
{
var ar:ArrayCollection = new ArrayCollection();
var ob:Object;
for( var i:int=0; i<20; i++ )
{
ob = new Object();
ob["A"] = i;
ob["B"] = i%3;
ob["C"] = i%5;
ar.addItem(ob);
}
this.theGrid.dataProvider = ar;
}
Run Code Online (Sandbox Code Playgroud) 我无法理解如何允许在运行时填充的DataGridView通过BindingSource排序(当用户单击列标题时)来自XML查询的LINQ是DataSource.
Dim QueryReOrder = From Q In Query _
Where ((0 - Q.Qualifier) / cmbTSStakeValue.Text) <= 0.1 _
Order By Q.Qualifier Descending _
Select Q
Dim bs As New BindingSource
bs.DataSource = QueryReOrder
DGFindMatch.DataSource = bs
Run Code Online (Sandbox Code Playgroud)
一些DataGridView的属性是:
Sort Nothing String
SortProperty Nothing System.ComponentModel.PropertyDescriptor
SupportsAdvancedSorting False Boolean
SupportsChangeNotification True Boolean
SupportsFiltering False Boolean
SupportsSearching False Boolean
SupportsSorting False Boolean
Run Code Online (Sandbox Code Playgroud)
是否有一个简单的解决方案,允许用户通过单击列标题对这些值进行排序?
谢谢!
我有一个MXML文件,它引用了所有事件处理程序的外部脚本文件:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script source="LoginExample.as" />
<mx:Button id="btnGoodLogin" click="btnGoodLogin_onClick()" label="Good Login" enabled="true" y="28"/>
<mx:Button id="btnBadLogin" click="btnBadLogin_onClick()" label="Bad Login" enabled="true" y="28" x="112"/>
<mx:Button id="btnLogout" click="btnLogout_onClick()" label="Logout" enabled="true" y="28" x="219"/>
<mx:Button id="btnCheck" click="btnCheck_onClick()" label="Check" enabled="true" y="28" x="325"/>
<mx:Text id="txtResult" y="58" width="263"/>
</mx:Application>
Run Code Online (Sandbox Code Playgroud)
外部文件定义处理程序:
// LoginExample.as
import flash.events.*;
import flash.net.*;
function btnGoodLogin_onClick():void
{
// ...
}
function btnBadLogin_onClick():void
{
// ...
}
// etc. for other handlers
Run Code Online (Sandbox Code Playgroud)
这些处理程序中的每一个以及脚本中定义的每个其他函数都会产生编译器的警告消息:
1084:函数'btnBadLogin_onClick'将限定为默认命名空间:LoginExample:internal.它不会在此包装外面看到.LoginExample/src LoginExample.as第27行1225162212118 189
什么是摆脱这些警告的最佳方法?
我正在使用一个头文件,其中包含恼人的消息,例如:
// annoying.h:
#pragma message("Compiling " __FILE__ )
Run Code Online (Sandbox Code Playgroud)
当没有实际问题时,我更喜欢干净的构建输出.在我包含此文件以阻止打印邮件之前,我能做些什么吗?
// not_annoying.cpp:
// PUT MAGIC HERE
#include "annoying.h"
Run Code Online (Sandbox Code Playgroud) 我有一堆回归测试数据.每个测试只是一个消息列表(关联数组),将消息字段名称映射到值.这些数据中有很多重复.
例如
test1 = [
{ sender => 'client', msg => '123', arg => '900', foo => 'bar', ... },
{ sender => 'server', msg => '456', arg => '800', foo => 'bar', ... },
{ sender => 'client', msg => '789', arg => '900', foo => 'bar', ... },
]
Run Code Online (Sandbox Code Playgroud)
我想表示字段数据(作为最小深度决策树?),以便可以使用最少数量的参数以编程方式重新生成每个消息.例如,在上面
所以我希望能够使用一个程序重新生成这些消息
write_msg( 'client', '123' )
write_msg( 'server', '456' )
write_msg( 'client', '789' )
Run Code Online (Sandbox Code Playgroud)
其中write_msg函数将由嵌套的if语句或使用参数的子函数调用组成.
基于我的原始数据,我如何确定"最重要"的参数集,即能够使用最少数量的参数重新创建数据集的参数?
在本周几种脚本语言之间来回切换之后,我发现自己在想它们的相似之处.然而,我总是想要谷歌(或现在的SO)来记住细节,例如"instanceof"和"endswith"的本地等价物,或者声明界面的正确语法,或者其他什么.
这让我想起了(人类)语言Europonto.只需选择一些模糊的英语语法和一些模糊的浪漫/日耳曼/斯拉夫语词汇,这一切都很好!
那么如果我们尝试用脚本语言做同样的事情会发生什么.对于今天的Python风格的缩进块感觉如何?精细!想要使用原型对象?好!只记得如何拼写某些库函数的PHP名称?没问题!
无论如何,这是疯狂而疯狂的想法.既然我们需要一个承认具体答案的问题,那就让我们这样收紧:
在创建允许[Python,Ruby,PHP,Perl,shell和JavaScript]的所有本机语法和库函数的脚本语言中,最重要的冲突是什么,这样您就可以在语言之间自由地混合代码块和函数名称?
让我们说任何特定的结构应该在声明级别上保持一致.所以我们允许:
foreach( $foo as $bar )
{
if $foo == 2:
print "hi"
}
Run Code Online (Sandbox Code Playgroud)
但不是,比方说,
foreach( $foo as $bar )
{
if $foo == 2:
print "hi"
endif
end
Run Code Online (Sandbox Code Playgroud)
冲突可能包括:解析器含糊不清; 名字碰撞; 对象或函数或闭包的冲突语义; 我猜这个范围将是一个巨大的问题,但你告诉我.
我将从一开始就将其作为"社区维基"开始,所以如果您认为这是一个有趣的问题但想要使其更加严谨,请随时编辑.
我正在用这样的行更新一些旧的Managed C++代码:
instanceOfEventSource->add_OnMyEvent(
new EventSource::MyEventHandlerDelegate(this, MyEventHandlerMethod) );
Run Code Online (Sandbox Code Playgroud)
哪里
C++/CLI中的正确语法是什么?
apache-flex ×3
datagrid ×3
.net ×2
algorithm ×1
c++ ×1
c++-cli ×1
data-binding ×1
datagridview ×1
frameworks ×1
linq ×1
managed-c++ ×1
mxml ×1
pragma ×1
scripting ×1
silverlight ×1
sorting ×1