我有一个由本文所述的DataGridView支持.SortableBindingList
这本质上是一个BindingList数据源是自定义对象列表.底层自定义对象以编程方式更新.
我SortableBindingList允许我按升序或降序对每列进行排序.我通过重载ApplySortCore方法 完成了这个
protected override void ApplySortCore(PropertyDescriptor prop,
ListSortDirection direction)
Run Code Online (Sandbox Code Playgroud)
这适用于单击列标题时的排序,但在以编程方式更新该列中的单元格时不会自动排序.
有没有其他人想出一个很好的解决方案来保持DataGridView从其基础数据源的程序化更新排序?
我们使用Spring JavaMailSenderImpl发送Mail .以下是配置
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${host}"/>
<property name="port" value="${port}"/>
<property name="username" value="${mail.username}"/>
<property name="password" value="${mail.password}"/>
<property name="javaMailProperties">
<props>
<!-- Use SMTP transport protocol -->
<prop key="mail.transport.protocol" >${mail.transport.protocol}</prop>
<!-- Use SMTP-AUTH to authenticate to SMTP server -->
<prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
<!-- Use TLS to encrypt communication with SMTP server -->
<prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</prop>
<prop key="mail.debug">false</prop>
<prop key="mail.smtp.ssl.enable">true</prop>
</props>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
属性文件: -
host=XXXX.XXXX.XX
port=25
mail.username=xxxxxxxx
mail.password=xxxxxxx
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.smtp.starttls.enable=true
Run Code Online (Sandbox Code Playgroud)
控制台日志
Exception in thread "taskExecutor-2" org.springframework.mail.MailSendException: Mail server connection failed; …Run Code Online (Sandbox Code Playgroud) 我希望能够#!在我的.desktop文件顶部添加注释,以便如果它具有执行权限并执行,它将实际运行.但是,我不知道.desktop文件的解释器是什么,所以我不知道/usr/bin/在hashbang中写入哪个文件.有任何想法吗?
编辑:
到目前为止,我已经制作了一个小的bash脚本,execdesktop可以执行桌面文件:
`sed -nr 's/Exec=(.*)$/\\1/p' $1`
Run Code Online (Sandbox Code Playgroud)
如果我然后将以下内容添加到我的.desktop文件中:
#!/usr/bin/execdesktop
Run Code Online (Sandbox Code Playgroud)
然后运行正常.这种方法有效,但我不想使用它,因为它需要安装execdesktop.
使用PowerShell System.DirectoryServices,我得到了一个如下所示的对象:
TypeName: System.__ComObject
Name MemberType Definition
---- ---------- ----------
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetLifetimeService Method System.Object GetLifetimeService()
GetType Method type GetType()
InitializeLifetimeService Method System.Object InitializeLifetimeService()
ToString Method string ToString()
Run Code Online (Sandbox Code Playgroud)
我能找到的所有示例代码都涉及从PowerShell创建新的COM对象,而不是包装已返回的现有对象.我如何有用地处理这个对象(枚举和使用实际的属性和方法)?
注:此对象实际上确实有一个类型库("ActiveDs"),但由于某些原因,我无法使用它的开箱,为不同的问题(通过PowerShell和脚本的Windows Live作家加载类型库)建议应是这样的.
这是一个单线显示如何获得这样的对象:
((new-object DirectoryServices.DirectoryEntry -a '
LDAP://somedc').Properties.GetEnumerator() |?{$_.PropertyName -eq 'usnChanged' }).Value[0] | Get-Member
Run Code Online (Sandbox Code Playgroud) 这个问题关系到这一个.
我得到了这个Gradle任务:
task fatJar(type: Jar) {
manifest {
attributes 'Implementation-Title': 'rpi-sense-hat-lib',
'Implementation-Version': version,
'Main-Class': 'io.github.lunarwatcher.pi.sensehat.Tests'
}
baseName = project.name
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
with jar
}
Run Code Online (Sandbox Code Playgroud)
并且只有一个依赖项,将测试依赖项放在一边:
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
testImplementation group: 'junit', name: 'junit', version: '4.12'
}
Run Code Online (Sandbox Code Playgroud)
从IDE运行正常.但是,当我部署到我的Raspberry Pi(或gradlew fatJar在本地使用jar 结果)时,我得到以下异常:
$ java -jar java-sense-hat-1.0a.jar
Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
at io.github.lunarwatcher.pi.sensehat.UtilsKt.getSenseHat(Utils.kt:18)
at io.github.lunarwatcher.pi.sensehat.SenseHat.<init>(SenseHat.java:12)
at io.github.lunarwatcher.pi.sensehat.Tests.main(Tests.java:9)
Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) …Run Code Online (Sandbox Code Playgroud) 我有一个"智能"手机似乎没有音乐随机播放功能,所以接下来最好的事情是编写一个bash脚本,用随机数在当前目录中添加所有文件名.
难道这难吗?
此问题的相关解决方案和项目文件位于:
http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.sln?r=26
http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Client/BenfWaves.Client.csproj?r=26
http://code.google.com/p/benfwaves/source/browse/trunk/BenfWaves.Tests/BenfWaves.Tests.csproj?r=26
我试图重构项目文件以消除冗余,并允许编译到.NET 3.5以及.NET 4.0.目前,VS2010 IDE可以在.NET 4.0上为任何CPU编译.如果我尝试任何CPU for .NET 3.5,它说:
错误1无法加载文件或程序集'System.Drawing,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.第123行,第5行.D:\ projects\BenfWaves\trunk\BenfWaves.Client\Properties\Resources.resx 123 5 BenfWaves.Client
我读到这可能是resgen.exe的问题,但更改该文件上的32位标志并没有改善任何情况.此外,IDE不相信项目具有除Any CPU以外的任何配置,这会产生以下问题:
------ Skipped Build: Project: BenfWaves.Library, Configuration: Debug-4.0 Any CPU ------
Project not selected to build for this solution configuration
------ Build started: Project: BenfWaves.Client, Configuration: Debug-4.0 x86 ------
BenfWaves.Client -> D:\projects\BenfWaves\trunk\BenfWaves.Client\bin\x86\Debug-4.0\BenfWaves.Client.exe
------ Skipped Build: Project: BenfWaves.Tests, Configuration: Debug-4.0 Any CPU ------
Project not selected to build for this solution configuration
========== Build: 1 succeeded …Run Code Online (Sandbox Code Playgroud) 这个(最小的,自包含的)示例被打破:
require(ggplot2)
min_input = c(1, 1, 1, 2, 2, 2, 4, 4, 4)
input_range = c(4, 470, 1003, 4, 470, 1003, 4, 470, 1003)
density = c(
1.875000e-01,
5.598958e-04,
0.000000e+00,
1.250000e-02,
3.841146e-04,
0.000000e+00,
1.250000e-02,
1.855469e-04,
0.000000e+00)
df = data.frame(min_input, input_range, density)
pdf(file='problemspace.pdf')
ggplot(df, aes(x=min_input, y=input_range, fill=density)) +
geom_tile()
dev.off()
Run Code Online (Sandbox Code Playgroud)
生产:

为什么会有很大差距?
写这个很笨重:
df$a <- df$b + df$c
Run Code Online (Sandbox Code Playgroud)
有没有办法(相当于):
with df:
$a <- $b + $c
Run Code Online (Sandbox Code Playgroud) 为什么在某些情况下 Python 3 中的连接似乎比 Python 2 中的慢?
最受影响的连接方法似乎是bytes对象的连续连接,它已经从 O(n) 到 O(n²) 操作。
我的大部分分析代码在这里:
#!/usr/bin/env python
from operator import concat
from sys import version, version_info
from timeit import timeit # Compatibility: ver >= 2.6
# ver = version.partition('\n')[0].rstrip()
ver = '.'.join(str(v) for v in version_info[:3])
print(ver)
if version_info[0] == 2:
from StringIO import StringIO
else:
from io import StringIO
from functools import reduce
xrange = range
def build_plus():
output = ''
for _ in xrange(input_len):
output += 'a'
return …Run Code Online (Sandbox Code Playgroud)