WPF – 如何结合DataTrigger和触发器?

注意我已经问了相关的问题: 如何结合DataTrigger和EventTrigger? 我有一个包含几个项目的列表框。 该项目的类实现INotifyPropertyChanged并具有属性IsAvailable 。 我使用该属性来使用不同的颜色在列表中指示不可用的选项。 但是,如果选定的项目不可用,则前景色应为红色。 <ListBox> <ListBox.Resources> <DataTemplate DataType="{x:Type local:InstitutionViewModel}"> <TextBlock Name="Name" Text="{Binding Name}"/> <DataTemplate.Triggers> <DataTrigger Binding="{Binding IsAvailable}" Value="False"> <Setter TargetName="Name" Property="Foreground" Value="#888"/> </DataTrigger> </DataTemplate.Triggers> </DataTemplate> </ListBox.Resources> </ListBox> 我使用上面的数据触发器灰化不可用的项目。 我面临的问题是,项目被选中的事实与模板绑定到的底层数据无关。 我真正想要的是某种多触发器,它支持依赖属性( ListBoxItem.IsSelected )上的常规Trigger和绑定数据项上的DataTrigger 。 如果不将select的概念引入我的视图模型,这可以做到吗? 对于任何人想知道为什么我不禁用不可用的项目,请理解,应用程序的要求是可选的不可用选项。 实际上有几个列表框,并在其中一个效果select其他的可用。 我不能禁用这些项目,因为如果项目在之前的select中被禁用,用户将无法改变他们的想法或探索不同的组合。

WPF vs XBAP vs Silverlight …哪个适合商业应用?

我非常熟悉完整的WPF客户端应用程序的许多细节。 我知道,WPF客户端应用程序支持完整的.NET Framework 3.5,允许二维和三维graphics,主题,模板,样式,触发器,作品的硬件加速。 我不清楚的是XBAP和Silverlight应用程序中存在或缺less哪些function和/或细节。 我听说XBAP由于安全问题而在某些方面受到内在的限制,但这就是关于它的原因。 我知道WPF足够强大,可用于全面的商业应用程序,但是XBAP和Silverlight呢? 每个的重要function和局限性是什么? 他们中的任何一个缺乏在商业应用程序中使用时无法使用的function?

如何在现有的Eclipse项目中打开Mercurial?

我在Eclipse中安装了用于Mercurial集成的HgEclipse插件。 我在Eclipse中有一个现有的(Java)项目,但我不知道如何打开这个现有的项目的汞金属变化跟踪。 看来我可以做一个汞项目的导入(文件>导入>水银>克隆…),但这只是新的Eclipse项目… 当然,我可以通过命令行应用Mercurial,例如项目目录中的hg init ,但是在Eclipse中没有find。 那么,如何为现有的 Eclipse项目启用Mercurial呢?

1/0是合法的Javaexpression式吗?

下面的代码在我的Eclipse中编译得很好: final int j = 1/0; // compiles fine!!! // throws ArithmeticException: / by zero at run-time Java首先防止了许多“哑代码”的编译(例如"Five" instanceof Number不能编译!),所以事实上这并没有产生太多的警告,这让我非常惊讶。 如果考虑到在编译时允许对常量expression式进行优化的事实,阴谋就会加深: public class Div0 { public static void main(String[] args) { final int i = 2+3; final int j = 1/0; final int k = 9/2; } } 在Eclipse中编译,上面的代码片断生成以下字节码( javap -c Div0 ) Compiled from […]

SVN – 跳过的path

我在运行SVN UP时收到了以下消息: Skipped 'trunk/scripts/accountability_survey_report.php' At revision 1585. Summary of conflicts: Skipped paths: 1 我一直在试图弄清楚这到底意味着什么以及如何解决这个问题。 我试图删除该文件,然后再svn了,但我得到以下几点: Restored 'trunk/scripts/accountability_survey_report.php' Skipped 'trunk/scripts/accountability_survey_report.php' At revision 1585. Summary of conflicts: Skipped paths: 1 任何帮助表示赞赏。

5种平等检查方式.net ..为什么? 和哪个使用?

学习.net(通过C#)我发现了5种方法来检查对象之间的平等。 ReferenceEquals()方法。 虚拟Equals()方法。 (System.Object的) 静态Equals()方法。 从IEquatable接口的Equals方法。 比较运算符==。 我的问题是: 为什么有这么多的Equals()方法和比较运算符? 哪一个虚拟Equals()或IEquatable的Equals()sholud被使用..(说如果我们使用我们自己的集合类)

JSF支持bean应该是可序列化的?

我收到这些消息: 将不可序列化的属性值设置为ViewMap:(key:MyBackingBean,值类:foo.bar.org.jsf.MyBackingBean)|#] 这是否意味着我的JSF支持bean应该实现Serializable? 还是他们提到其他一些问题呢?

为什么malloc()和printf()表示为不可重入?

在UNIX系统中,我们知道malloc()是一个非重入函数(系统调用)。 这是为什么? 同样, printf()也被认为是不可重入的; 为什么? 我知道重入的定义,但我想知道为什么它适用于这些function。 什么阻止他们保证可重入?

IEnumerable和IEnumerable <T>之间的区别?

IEnumerable和IEnumerable<T>什么区别? 我见过很多实现这两个接口的框架类,所以我想知道通过实现这两个接口有什么好处? 请看看他们是如何定义的: public interface IEnumerable { [DispId(-4)] IEnumerator GetEnumerator(); } public interface IEnumerable<T> : IEnumerable { IEnumerator<T> GetEnumerator(); } 正如我们所看到的, IEnumerable<T>从IEnumerable派生,这意味着无论IEnumerable具有什么, IEnumerable<T>inheritance,那么为什么我们要实现而不仅仅是IEnumerable<T>呢? 正在实现IEnumerable<T>不够? 同样,还有其他类似的配对: IList和IList<T> ICollection和ICollection<T> 我也想知道这些。

嵌套模型和父validation

我有两个模型。 – Parent has_many Children ; – Parent accepted_nested_attributes_for Children ; class Parent < ActiveRecord::Base has_many :children, :dependent => :destroy accepts_nested_attributes_for :children, :allow_destroy => true validates :children, :presence => true end class Child < ActiveRecord::Base belongs_to :parent end 我使用validation来validation每个父母的孩子的存在,所以我不能救孩子没有父母。 parent = Parent.new :name => "Jose" parent.save #=> false parent.children_attributes = [{:name => "Pedro"}, {:name => […]