说我正在使用WPF或Silverlight并将ContentPresenter绑定到整数属性:
<ContentPresenter Content={Binding Score} />
Run Code Online (Sandbox Code Playgroud)
如果得分为10,我想显示金星,否则只显示数字.基本上我有两个可能的数据模板:
<Path Fill="Gold" Data="..." />
<TextBlock Text="{Binding Score}" />
Run Code Online (Sandbox Code Playgroud)
设置它的最佳方法是什么?是否使用绑定转换器?或者绑定到另一个动态加载相应数据模板xaml的对象,并根据Score的值生成正确的FrameworkElement?或者是否有另外一个我缺少的技巧 - 也许ContentPresenter不是正确使用的控件?
我想知道你是否可以做这样的事情,但它不喜欢ContentTemplate值中的嵌套绑定:
<StackPanel>
<StackPanel.Resources>
<DataTemplate x:Key="LowScore">
<TextBlock Text="{Binding Path=Score}" Foreground="Red" />
</DataTemplate>
<DataTemplate x:Key="HighScore">
<Path Fill="Gold" Data="M 0,0 l 10,0 l 5,-10 l 5,10 l 10,0 l -7,10 l 2,10 l -10,-5 l -10,5 l 2,-10 Z" />
</DataTemplate>
</StackPanel.Resources>
<ContentPresenter Content="{Binding Score}" ContentTemplate="{StaticResource ResourceKey={Binding ScoreTemplate}}">
</ContentPresenter>
</StackPanel>
Run Code Online (Sandbox Code Playgroud) 这是我的.h文件:
struct _MyString;
typedef struct _MyString MyString;
Run Code Online (Sandbox Code Playgroud)
我想在.c文件中声明其成员.
我试过了:
typedef struct MyString{
char * _str;// pointer to the matrix
unsigned long _strLength;
}MyString;
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我如何在.c文件中声明结构的成员?
谢谢
请考虑此代码段并尝试猜测y1并y2评估
static class Extensions
{
public static Func<T> AsDelegate<T>(this T value)
{
return () => value;
}
}
class Program
{
static void Main(string[] args)
{
new Program();
}
Program()
{
double x = Math.PI;
Func<double> ff = x.AsDelegate();
Func<double> fg = () => x;
x = -Math.PI;
double y1 = ff(); // y1 = 3.141..
double y2 = fg(); // y2 = -3.141..
}
}
Run Code Online (Sandbox Code Playgroud)
您可能会说-Aha- double是一个值类型,因此扩展方法返回的值是main 的副本x.但是,当您将上述内容更改为类的委托时,结果仍然不同.例:
class Foo
{
public …Run Code Online (Sandbox Code Playgroud) 我知道当从几个线程或进程写入的内存位置读取时,volatile属性应该用于该位置,就像下面的一些情况一样,但我想知道更多关于它对编译器的实际限制,基本上是什么规则编译器在处理这种情况时必须遵循,并且有任何例外情况,尽管可以同时访问存储器位置,但程序员可以忽略volatile关键字.
volatile SomeType * ptr = someAddress;
void someFunc(volatile const SomeType & input){
//function body
}
Run Code Online (Sandbox Code Playgroud) 当我进行maven构建时,我有一个xslt,我想添加到我的jar文件中.我在文档中读到你可以在资源文件夹中添加内容,它会被拾取,但如果我希望它出现在另一个文件夹中怎么办 - 如何让它在jar中去?
我好像遇到了一个奇怪的问题.在本地环境中使用我的GWT应用程序时,一切正常.编译和部署我的应用程序后问题出现了.当我完成项目工作流程并单击某个链接切换到新面板时,我收到以下错误(来自我在Chrome中的控制台):
Uncaught com.google.gwt.event.shared.UmbrellaException: One or more exceptions
caught, see full set in UmbrellaException#getCauses (anonymous function)
Run Code Online (Sandbox Code Playgroud)
GWT在编译时生成的缓存文件之一抛出此错误.但这种情况从未发生在本地部署的程序上(从Eclipse部署,"作为Web应用程序运行").有没有人遇到这个问题或者可以为修复提供任何指导?
谢谢!:)
我只是看到一个非常奇怪的事情,我有一个同事,他们使用他们的configspec设置来查看主分支,今天早上他可以看到某个文件夹中的文件,但他并没有更改该视图以及所有突然他们走了。
我查看了文件夹的节点,将其与以前的版本进行比较时,它表明在最新版本的main中删除了大约4个文件(大概在一个月前进行了检查,距离问题开始很久了) )。
所以我的问题是,为什么在比较节点而不是在文件夹中时可以看到它们?
我将我正在查看的节点与之前的节点进行了比较,因此并没有像我选择另一个我未查看的节点那样。
这真令人困惑。
编辑:这仅在此一个文件夹中发生,另一个如视图中的10个文件夹都可以访问,并且文件也可见(它们都分支相同)。
EDIT#2:这样他们就可以通过复制configspec,停止视图,启动视图以及将configspec复制回去,再次看到文件,(现在我听说是第二个人了)。又回来了,但那仍然无法解释什么原因。
您好我有以下代码使用带有linq的nhibernate 3.0从我的数据库中检索数据 -
public IQueryable<myEntity> getEntityWithChild
{
get { return _currentSession.Query<myEntity>().Fetch(c => c.myOtherEntity); }
}
Run Code Online (Sandbox Code Playgroud)
当我尝试将其传递给视图时,我收到以下错误,这不是非常具体.当我没有急于使用以下装载时,这工作正常 -
public IQueryable<myEntity> getEntityWithChild
{
get { return _currentSession.Query<myEntity>(); }
}
Run Code Online (Sandbox Code Playgroud)
但是每次其他实体延迟加载时我都会创建一个单独的查询.有没有人在此之前看到这个可能能指出我正确的方向.谢谢你的任何想法.
System.NotSupportedException was unhandled by user code
Message=Specified method is not supported.
Source=NHibernate
StackTrace:
at NHibernate.Hql.Ast.ANTLR.PolymorphicQuerySourceDetector.GetClassName(IASTNode querySource)
at NHibernate.Hql.Ast.ANTLR.PolymorphicQuerySourceDetector.Process(IASTNode tree)
at NHibernate.Hql.Ast.ANTLR.AstPolymorphicProcessor.Process()
at NHibernate.Hql.Ast.ANTLR.AstPolymorphicProcessor.Process(IASTNode ast, ISessionFactoryImplementor factory)
at NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(IASTNode ast, String queryIdentifier, String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory)
at NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(String queryIdentifier, IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory) …Run Code Online (Sandbox Code Playgroud) 使用依赖注入时,您注入哪些依赖项?
我以前注入了所有依赖项,但是在执行TDD时发现通常有两种类型的依赖项:
一种方法是注入这样的所有依赖项
public ClassWithExternalDependency(IExternalDependency external,
IExtractedForTestabilityDependency internal)
{
// assign dependencies ...
}
Run Code Online (Sandbox Code Playgroud)
但我发现这可能会导致DI注册表中的依赖性膨胀.
另一种方法是隐藏像这样的"可测试性依赖"
public ClassWithExternalDependency(IExternalDependency external)
: this (external, new ConcreteClassOfInternalDependency())
{}
internal ClassWithExternalDependency(IExternalDependency external,
IExtractedForTestabilityDependency internal)
{
// assign dependencies ...
}
Run Code Online (Sandbox Code Playgroud)
这是更多的努力,但似乎更有意义.缺点不是所有对象都在DI框架中配置,从而打破了我听过的"最佳实践".
你会提倡哪种方法?为什么?
我试图弄清楚如何使用Pylons和Python检查模板上下文'tmpl_context'中是否存在变量.我想要做的是:
我有一个Pylons布局模板.当且仅当变量c.messages存在于上下文中时,这应包含消息部分.消息部分如下所示:
<div py:if="len(c.messages) > 0">
<py:for each="msg in c.messages">
<strong>${msg}</strong>
</py:for>
</div>
Run Code Online (Sandbox Code Playgroud)
如果控制器未定义c.messages,则会产生错误.所以我只想在定义变量时才包含它.有这个问题的解决方案吗?
build ×1
c ×1
c# ×1
c++ ×1
caching ×1
clearcase ×1
data-binding ×1
datatemplate ×1
delegates ×1
exception ×1
genshi ×1
gwt ×1
jar ×1
java ×1
javascript ×1
maven ×1
memory ×1
nhibernate ×1
pylons ×1
python ×1
rules ×1
silverlight ×1
volatile ×1
wpf ×1