问题列表 - 第516页

将枚举属性数据绑定到WPF中的ComboBox

作为示例,请使用以下代码:

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)

.net wpf

246
推荐指数
9
解决办法
17万
查看次数

在C#中复制目录的全部内容

我想在C#中将目录的全部内容从一个位置复制到另一个位置.

似乎没有办法使用System.IO没有大量递归的类来完成此操作.

VB中有一个方法,如果我们添加一个引用,我们就可以使用它Microsoft.VisualBasic:

new Microsoft.VisualBasic.Devices.Computer().
    FileSystem.CopyDirectory( sourceFolder, outputFolder );
Run Code Online (Sandbox Code Playgroud)

这似乎是一个相当丑陋的黑客.有没有更好的办法?

.net c# copy

497
推荐指数
8
解决办法
33万
查看次数

如何从Google Analytics获取原始日志?

是否可以从Google Analytic获取原始日志?有没有可以从GA生成原始日志的工具?

google-analytics

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

在Rails中进行每用户数据库连接的最佳方法是什么

进行每用户数据库连接的最佳方法是什么Rails

我意识到这是一个糟糕的Rails设计实践,但我们正在逐步取代每个用户使用一个数据库的现有Web应用程序.完全重新设计/重写是不可行的.

ruby-on-rails

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

如何将多个标签行粘贴到Vi中?

我想将我从桌面剪切的内容粘贴到Vi中打开的文件中.

但是,如果我粘贴在页面上相互叠加的选项卡.

我认为这是某种视觉模式的改变,但无法找到命令.

vi vim

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

使用Progress在Windows命令行上复制文件

有没有人知道可以在显示进度时复制文件的Windows命令行(在XP Pro或更高版本中可用).我不关心进度指示器是在终端还是GUI窗口中.

这适用于批处理文件脚本期间

windows scripting batch-file

30
推荐指数
4
解决办法
9万
查看次数

您使用什么工具来计算Visual Studio项目中的源代码行?

我知道有很多行计数工具.是否有一些简单的东西不是你使用的其他大包装的一部分?

code-analysis visual-studio

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

在vim中使用Javascript语法突出显示

有没有其他人发现VIM的语法突出显示Javascript次优?我发现有时我需要滚动以便调整语法高亮,因为有时它会神秘地丢弃所有突出显示.

是否有任何解决方法或方法来解决这个问题?我正在使用vim 7.1.

javascript vim editing vim-syntax-highlighting

49
推荐指数
4
解决办法
4万
查看次数

左连接中的歧义(仅限oracle?)

我的老板在我创建的查询中发现了一个错误,我不明白错误背后的原因,尽管查询结果证明他是正确的.这是修复之前的查询(简化版):

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)

有人有线索吗?

sql oracle join

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

带有GCC的预编译头文件

任何人都有成功的预编译头与GCC一起工作?我的尝试没有运气,我没有看到很多关于如何设置它的好例子.我已经尝试过cygwin gcc 3.4.4并在Ubuntu上使用4.0.

c++ gcc precompiled-headers

90
推荐指数
5
解决办法
6万
查看次数