小编vau*_*han的帖子

绑定到用户控件WPF/XAML的依赖项属性

我的应用程序如下所示:


SectionHeader

SectionHeader

内容

SectionHeader

内容


SectionHeader 是具有两个依赖项属性=标题和应用程序的用户控件.

标题不会更改,但应用程序需要绑定到主窗口视图模型Apps属性.只有三个部分标题中的两个需要Apps属性.

<c:SectionHeader DockPanel.Dock="Top" x:Name="SectionResources" Title="RESOURCES"
   Apps="{Binding Path=Apps}" />
Run Code Online (Sandbox Code Playgroud)

这就是目前的情况.问题是应用程序没有出现.

SectionHeaderDataContext中设置为自身如下,允许标题显示.

DataContext="{Binding RelativeSource={RelativeSource Self}}"
Run Code Online (Sandbox Code Playgroud)

应用程序是ItemsControlUserControl中a的ItemsSource :

<ItemsControl
      ItemsSource="{Binding Apps}">
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  • 我如何将数据绑定到UserControl DP?
  • 在没有UserControls的情况下,这是一种更简单的方法吗?

编辑:

忘了提到Apps是AppsItems的ObservableCollection.

这就是我的DP的样子:

public static readonly DependencyProperty AppsProperty = DependencyProperty.Register("Apps",
  typeof (ObservableCollection<AppsItem>), typeof (SectionHeader),
  new PropertyMetadata(null, OnAppsPropertyChanged));

private static void OnAppsPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
  Console.WriteLine("Hello!!!");
  var sectionHeader = d as SectionHeader;
  var value = e.NewValue as ObservableCollection<AppsItem>;
  sectionHeader.Apps = value;
}
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml

14
推荐指数
2
解决办法
3万
查看次数

部署没有依赖项的Scala二进制文件

有没有一种简单的方法可以将Scala Jar(~1MB)复制到服务器,然后让SBT获取所需的依赖项(~40MB)并运行它?

我已经看过sbt-onejar和sbt-assembly,但是这些将所有依赖项捆绑到一个jar中,在我的情况下变为~45MB,这需要很长时间才能上传到服务器.

目前我使用Capistrano从GitHub检出我的代码并编译它.然后我使用xsbt-start-script-plugin运行它 - 类似于Heroku管理它的方式.

问题是编译需要很长时间在服务器上(我正在使用EC2).带有~600MB冲头的EC2 Micro需要很长时间,有时会随机杀死该过程.我正在使用目前正在运行的EC2 Small实例(1.7GB ram),但随着代码库的增加而我添加了更多服务器,它可能会出现问题.

理想的工作流程是在本地(或在CI服务器上)编译Scala源,复制到服务器,让SBT引入自上次构建以来添加的其他依赖项(现有的将来自本地缓存的常春藤repo),然后为我提供一个简单的在Ubuntu 10.04上使用Upstart运行服务的脚本.

我还想了解其他Scala用户如何部署他们的代码.


(OP后来发布的"回答"代码)

FWIW这里是我的构建文件.

build.sbt

import com.typesafe.startscript.StartScriptPlugin
name := "XXX"
version := "0.1.0"
scalaVersion := "2.9.1"
resolvers += "XXX" at "http://repo.XXX.XXX"
libraryDependencies += "XXXX" %% "backend" % "0.1.0"
seq(StartScriptPlugin.startScriptForJarSettings: _*)
mainClass in Compile := Some("XXX.app.Main")
Run Code Online (Sandbox Code Playgroud)

项目/ build.sbt

resolvers += Classpaths.typesafeResolver
addSbtPlugin("com.typesafe.startscript" % "xsbt-start-script-plugin" % "0.5.0")
addSbtPlugin("com.eed3si9n" % "sbt-dirty-money" % "0.0.1")
Run Code Online (Sandbox Code Playgroud)

deployment scala jar sbt

10
推荐指数
1
解决办法
1472
查看次数

如何在IntelliJ中重命名文件而不查找用法?

我正在IntelliJ中开发一个Node.js项目.

重命名文件的唯一方法似乎是Shift+F6尝试查找所需的时间太长(~30s - 1min).

有没有办法简单地重命名文件而不搜索用法?

这仅在代码存储在模块中时才会发生(这是压缩空中间包所必需的).

refactoring intellij-idea

10
推荐指数
2
解决办法
1万
查看次数

将Scala与Gradle一起用于Android项目

某处似乎有内存泄漏.

在IntelliJ中设置项目并使用Gradle包装器时:

./gradlew assembleDebug --debug

大约5分钟后我得到以下信息:

14:30:15.245 [INFO] [org.gradle.api.Project] processing scala/collection/SeqViewLike$$anon$5.class...
14:30:53.132 [INFO] [org.gradle.api.Project] processing scala/collection/SeqViewLike$$anon$6.class...
14:33:51.027 [ERROR] [org.gradle.api.Project] 
14:33:51.028 [ERROR] [org.gradle.api.Project] UNEXPECTED TOP-LEVEL ERROR:
14:33:51.028 [ERROR] [org.gradle.api.Project] java.lang.OutOfMemoryError: Java heap space
14:33:51.028 [ERROR] [org.gradle.api.Project]   at java.util.HashMap.<init>(HashMap.java:209)
14:33:51.029 [ERROR] [org.gradle.api.Project]   at com.android.dx.ssa.LocalVariableInfo.<init>(LocalVariableInfo.java:66)
14:33:51.029 [ERROR] [org.gradle.api.Project]   at com.android.dx.ssa.LocalVariableExtractor.<init>(LocalVariableExtractor.java:72)
14:33:51.029 [ERROR] [org.gradle.api.Project]   at com.android.dx.ssa.LocalVariableExtractor.extract(LocalVariableExtractor.java:54)
14:33:51.029 [ERROR] [org.gradle.api.Project]   at com.android.dx.ssa.SsaConverter.convertToSsaMethod(SsaConverter.java:49)
14:33:51.030 [ERROR] [org.gradle.api.Project]   at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:98)
14:33:51.030 [ERROR] [org.gradle.api.Project]   at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:72)
14:33:51.030 [ERROR] [org.gradle.api.Project]   at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:303)
14:33:51.030 [ERROR] [org.gradle.api.Project]   at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139)
14:33:51.031 [ERROR] [org.gradle.api.Project] …
Run Code Online (Sandbox Code Playgroud)

android scala intellij-idea gradle

8
推荐指数
1
解决办法
1809
查看次数

如何使用maven-antrun-plugin有条件地执行任务?

我需要执行一些ant命令,具体取决于作为maven build命令的参数传入的环境变量.

目前我有3个任务块,只执行没有条件的任务块.

<tasks name="isProdCheck">
  <condition property="isProd">
    <equals arg1="${environment}" arg2="PROD" />
  </condition>
</tasks>

<tasks if="isProd" depends="isProdCheck">
...
</tasks>

<tasks>
... I am the only block executed
</tasks>
Run Code Online (Sandbox Code Playgroud)

我做错了什么,有更好的方法吗?

maven-2 maven-antrun-plugin

7
推荐指数
2
解决办法
3万
查看次数

如何改变句子前缀"我在[X]上工作",使其具有所有X的正确句子结构?

我希望用户能够输入一个任务,我会正确地添加前缀,使其具有正确的句子结构.

例如

I am working on [making the world a better place]
Run Code Online (Sandbox Code Playgroud)

...听起来不错.

I am working on [discuss draft proposal]
Run Code Online (Sandbox Code Playgroud)

......听起来不太好.在这种情况下,它希望程序响应类似于:

I am discussing a draft proposal
Run Code Online (Sandbox Code Playgroud)

基本上人们写任务或待命的方式似乎是必要的(例如拿起牛奶,写论文等)或仅仅是名词(例如作业1,客户会议等).我想将这些转换为现在进行时.

我目前正在研究自然语言处理领域,但我想知道是否有某种API可以满足我的需求,或者是否有人遇到类似问题的经验.

api nlp

7
推荐指数
1
解决办法
393
查看次数

HAML中的多行属性值

我正在使用KnockoutJS,它使用data-bind属性中的json字符串来指示绑定信息.我也喜欢使用HAML.

这个字符串可以很快变长,例如: -

%ul#task-list.unstyled{"data-bind" => "template: { name : 'taskHierarchy', foreach : contexts.children(), afterAdd: function(elem) { $(elem).hide().slideDown() } }"}
Run Code Online (Sandbox Code Playgroud)

解决方案是使用:plain如下过滤器(与上面略有不同): -

:plain
  <div data-bind = "template: {
    name: 'twoLineResourceTemplate',
    foreach: resources,
    afterAdd: function(elem) { $(elem).hide().slideDown() }
  }">
  </div>
Run Code Online (Sandbox Code Playgroud)

有没有更简洁的方法来使用HAML构造而不是过滤器?

我已经尝试使用管道字符但它似乎不适用于HAML属性.

谢谢!

html haml knockout.js

6
推荐指数
1
解决办法
2129
查看次数

是否可以在GitHub diff查看器中包装长行?

是否可以在GitHub diff查看器中包装长行?

也许一个查询字符串参数?

github

6
推荐指数
1
解决办法
2502
查看次数

编辑jsp文件时eclipse中每个标记之后的新行

当使用Ctrl + Shift + F在Eclipse中自动格式化JSP文件时,它试图尽可能多地在一行上标记,然后不适合它的标记将断开并将属性放在下一行.

这是创建非常混乱的代码,例如下面.

        <div class="type-text"><label for="echo">Project Name: </label> <s:textfield
            id="projectName"
            name="projectName"
            value="Project Name"
        >
        </s:textfield></div>
Run Code Online (Sandbox Code Playgroud)

有谁知道如何更好地格式化JSP文件?

eclipse jsp code-formatting

5
推荐指数
1
解决办法
2992
查看次数

是否可以有多个到 gdbserver 的连接?

我正在使用 Eclipse CDT 和 GNU ARM QEMU 模拟器。Eclipse 在 QEMU 上运行时启动自己的gdb会话gdbserver。我还希望能够从 OSX 终端进行连接,以进行更精细的控制。我还希望能够使用 Node.js 脚本中的 GDB/MI 来获取注册状态等有用数据,并在网页中将其可视化。

当使用我自己的 gdb 会话独立运行 QEMU 模拟器时,我可以很好地连接,但我想知道是否可以搭载 Eclipse 的 gdb,或者再次连接到gdbserver.

谢谢!


来自https://sourceware.org/gdb/onlinedocs/gdb/Server.html (20.3.1.2):

当 gdbserver 保持运行时,gdb 可以稍后再次连接到它。这种重新连接对于断开连接的跟踪等功能很有用。为了完整起见,一次最多可以连接一个 gdb。


到目前为止我无法弄清楚,从文档看来这是不可能的。

我现在使用的解决方案是从终端手动运行 QEMU 模拟器。GNU ARM Eclipse 调试器允许指定gdbserver host:port,我可以将其指向运行良好的独立 QEMU。

为了允许模拟 gdb 会话,我可以创建一个自定义 TCP 服务器供 Eclipse 连接,而不是直接连接到gdbserver. 该 TCP 服务器会将所有流量从 Eclipse 转发到gdbserver,并且我还可以通过此通道监听消息并向 gdb 发送消息。

最终结果是您可以像往常一样在 Eclipse 中调试和设置断点,而且还可以以任何您想要的方式与 gdb 交互,例如通过 Web 界面、本机 OSX 终端等。

eclipse gdb gnu-arm

5
推荐指数
1
解决办法
1556
查看次数

正则表达式匹配未选中和选中的 HTML 选项标签

有人可以推荐一个正则表达式来在选择和取消选择项目时返回值,如下所示。

<option value="32_1002_ACCT1001" selected="selected">ACCT1001 -- Accounting 1a</option>
<option value="32_1002_ACCT1002">ACCT1002 -- Accounting 1b</option>
Run Code Online (Sandbox Code Playgroud)

我的正则表达式目前仅适用于下面看到的未选中的选项。

(<option value="([^"]+)">([^<]+)<\/option>)
Run Code Online (Sandbox Code Playgroud)

编辑:

感谢你们的伟大回应,但是我应该更详细和具体一点。

我在屏幕刮板提取器模式中使用它,如下所示:

<option value="~@COURSE_ID@~">~@COURSE_CODE@~ -- ~@COURSE_NAME@~</option>
Run Code Online (Sandbox Code Playgroud)

其中 ~@COURSE_ID@~ 指定以下正则表达式查询:

([^"]+)
Run Code Online (Sandbox Code Playgroud)

适用于所有选项标签,除了已经选择的第一个标签。

我目前正在测试您的建议,但如果有人想加入一个非常好的解决方案,那就太好了。

我真的很纠结这个,似乎没有任何效果!

regex

3
推荐指数
1
解决办法
3487
查看次数

在ES6中定义后导出类

// test.js
class Test

export Test
Run Code Online (Sandbox Code Playgroud)
// index.js
import {Test} from './test'
Run Code Online (Sandbox Code Playgroud)

这会导致语法错误Unexpected token.导出预定义类的正确方法是什么?


编辑:要求类定义与导出分开.

javascript ecmascript-6

3
推荐指数
2
解决办法
4988
查看次数

如何在Scala中编写此方法,或者处理早期返回的最佳方法是什么

玩一下Scala,似乎你无法从函数中提前返回.

我发现平坦的未缩减代码,早期返回易于遵循.我最初的尝试创建了一个大的嵌套结构.叫我挑剔,但我不喜欢看到以下内容:

    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在Scala中编写以下方法的最佳方法是什么?

是否有可能以这种方式编程以减少嵌套,或者我是否会全面反对Scala的功能设计理念?

@Nullable
public static <T extends PsiElement> T getParentOfType(@Nullable PsiElement element,
                                                       @NotNull Class<T> aClass,
                                                       boolean strict,
                                                       @NotNull Class<? extends PsiElement>... stopAt) {
  if (element == null) return null;
  if (strict) {
    element = element.getParent();
  }

  while (element != null && !aClass.isInstance(element)) {
    if (instanceOf(element, stopAt)) return null;
    if (element instanceof PsiFile) return null;
    element = element.getParent();
  }

  //noinspection unchecked
  return (T)element;
}
Run Code Online (Sandbox Code Playgroud)

我的尝试:

def getParentOfType[T](element: PsiElement, aClass: Class, strict: Boolean): T[_ <: PsiElement] = …
Run Code Online (Sandbox Code Playgroud)

scala

1
推荐指数
1
解决办法
166
查看次数