作为示例,请使用以下代码:
public enum ExampleEnum { FooBar, BarFoo }
public class ExampleClass : INotifyPropertyChanged
{
private ExampleEnum example;
public ExampleEnum ExampleProperty
{ get { return example; } { /* set and notify */; } }
}
Run Code Online (Sandbox Code Playgroud)
我想要将属性ExampleProperty数据绑定到ComboBox,以便它显示选项"FooBar"和"BarFoo"并在TwoWay模式下工作.最理想的是我希望我的ComboBox定义看起来像这样:
<ComboBox ItemsSource="What goes here?" SelectedItem="{Binding Path=ExampleProperty}" />
Run Code Online (Sandbox Code Playgroud)
目前我在我的Window中安装了ComboBox.SelectionChanged和ExampleClass.PropertyChanged事件的处理程序,我手动执行绑定.
是否有更好或某种规范的方式?您通常会使用转换器吗?如何使用正确的值填充ComboBox?我现在甚至不想开始使用i18n.
编辑
所以回答了一个问题:如何使用正确的值填充ComboBox.
通过静态Enum.GetValues方法中的ObjectDataProvider将Enum值作为字符串列表检索:
<Window.Resources>
<ObjectDataProvider MethodName="GetValues"
ObjectType="{x:Type sys:Enum}"
x:Key="ExampleEnumValues">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="ExampleEnum" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)
这个我可以用作我的ComboBox的ItemsSource:
<ComboBox ItemsSource="{Binding Source={StaticResource ExampleEnumValues}}"/>
Run Code Online (Sandbox Code Playgroud) 我想在C#中将目录的全部内容从一个位置复制到另一个位置.
似乎没有办法使用System.IO
没有大量递归的类来完成此操作.
VB中有一个方法,如果我们添加一个引用,我们就可以使用它Microsoft.VisualBasic
:
new Microsoft.VisualBasic.Devices.Computer().
FileSystem.CopyDirectory( sourceFolder, outputFolder );
Run Code Online (Sandbox Code Playgroud)
这似乎是一个相当丑陋的黑客.有没有更好的办法?
是否可以从Google Analytic获取原始日志?有没有可以从GA生成原始日志的工具?
进行每用户数据库连接的最佳方法是什么Rails
?
我意识到这是一个糟糕的Rails设计实践,但我们正在逐步取代每个用户使用一个数据库的现有Web应用程序.完全重新设计/重写是不可行的.
我想将我从桌面剪切的内容粘贴到Vi中打开的文件中.
但是,如果我粘贴在页面上相互叠加的选项卡.
我认为这是某种视觉模式的改变,但无法找到命令.
有没有人知道可以在显示进度时复制文件的Windows命令行(在XP Pro或更高版本中可用).我不关心进度指示器是在终端还是GUI窗口中.
这适用于批处理文件脚本期间
我知道有很多行计数工具.是否有一些简单的东西不是你使用的其他大包装的一部分?
有没有其他人发现VIM的语法突出显示Javascript次优?我发现有时我需要滚动以便调整语法高亮,因为有时它会神秘地丢弃所有突出显示.
是否有任何解决方法或方法来解决这个问题?我正在使用vim 7.1.
我的老板在我创建的查询中发现了一个错误,我不明白错误背后的原因,尽管查询结果证明他是正确的.这是修复之前的查询(简化版):
select PTNO,PTNM,CATCD
from PARTS
left join CATEGORIES on (CATEGORIES.CATCD=PARTS.CATCD);
Run Code Online (Sandbox Code Playgroud)
这是在修复之后:
select PTNO,PTNM,PARTS.CATCD
from PARTS
left join CATEGORIES on (CATEGORIES.CATCD=PARTS.CATCD);
Run Code Online (Sandbox Code Playgroud)
错误是,列CATCD显示空值,即查询结果包括表CATEGORIES而不是PARTS的结果.这是我不明白的:如果原始查询中存在歧义,为什么Oracle没有抛出错误?据我所知,在左连接的情况下,查询(PARTS)中的"主"表优先于歧义.我错了,还是没有正确地思考这个问题?
更新:
这是一个修改过的示例,其中不会抛出歧义错误:
CREATE TABLE PARTS (PTNO NUMBER, CATCD NUMBER, SECCD NUMBER);
CREATE TABLE CATEGORIES(CATCD NUMBER);
CREATE TABLE SECTIONS(SECCD NUMBER, CATCD NUMBER);
select PTNO,CATCD
from PARTS
left join CATEGORIES on (CATEGORIES.CATCD=PARTS.CATCD)
left join SECTIONS on (SECTIONS.SECCD=PARTS.SECCD) ;
Run Code Online (Sandbox Code Playgroud)
有人有线索吗?
任何人都有成功的预编译头与GCC一起工作?我的尝试没有运气,我没有看到很多关于如何设置它的好例子.我已经尝试过cygwin gcc 3.4.4并在Ubuntu上使用4.0.