相关疑难解决方法(0)

如何将RadioButtons绑定到枚举?

我有这样的枚举:

public enum MyLovelyEnum
{
    FirstSelection,
    TheOtherSelection,
    YetAnotherOne
};
Run Code Online (Sandbox Code Playgroud)

我的DataContext中有一个属性:

public MyLovelyEnum VeryLovelyEnum { get; set; }
Run Code Online (Sandbox Code Playgroud)

我的WPF客户端中有三个RadioButton.

<RadioButton Margin="3">First Selection</RadioButton>
<RadioButton Margin="3">The Other Selection</RadioButton>
<RadioButton Margin="3">Yet Another one</RadioButton>
Run Code Online (Sandbox Code Playgroud)

现在如何将RadioButtons绑定到属性以进行正确的双向绑定?

data-binding wpf enums radio-button

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

如何将枚举绑定到WPF中的组合框控件?

我试图找到一个简单的例子,其中枚举按原样显示.我见过的所有示例都尝试添加漂亮的显示字符串,但我不希望这种复杂性.

基本上我有一个类,它包含我绑定的所有属性,首先将DataContext设置为此类,然后在xaml文件中指定这样的绑定:

<ComboBox ItemsSource="{Binding Path=EffectStyle}"/>
Run Code Online (Sandbox Code Playgroud)

但是这并没有在ComboBoxas项中显示枚举值.

.net c# data-binding wpf xaml

169
推荐指数
8
解决办法
18万
查看次数

如何将Enum绑定到ASP.NET中的DropDownList控件?

假设我有以下简单的枚举:

enum Response
{
    Yes = 1,
    No = 2,
    Maybe = 3
}
Run Code Online (Sandbox Code Playgroud)

如何将此枚举绑定到DropDownList控件,以便描述显示在列表中,并在选择选项后检索关联的数值(1,2,3)?

.net c# asp.net

119
推荐指数
10
解决办法
16万
查看次数

如何在XAML中使用给定枚举中的所有项填充WPF组合框?

假设我有一个包含四个值的枚举:

public enum CompassHeading
{
    North,
    South,
    East,
    West
}
Run Code Online (Sandbox Code Playgroud)

使用这些项目填充ComboBox需要什么样的XAML?

<ComboBox ItemsSource="{Binding WhatGoesHere???}" />
Run Code Online (Sandbox Code Playgroud)

理想情况下,我不必为此设置C#代码.

.net data-binding wpf enums combobox

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

WPF中的数据绑定单选按钮列表

我有一个数据对象的选项列表,我想使用一个单选按钮列表,以允许用户选择一个,只有一个.功能类似于数据绑定组合框,但采用单选按钮格式.

愚蠢的我,我以为这将是内置的,但没有.你怎么做呢?

wpf databound radio-button

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

转换器显示枚举的描述,并在从wpf的组合框中选择项目时转换回枚举值

我正在使用枚举来在我的组合框中登记值.我想写一个转换器,它将显示所选枚举值的"描述".并且,选中后,它将返回枚举值.

大多数在线转换器都没有实现ConvertBack()方法(这就是我在这里发布的原因).

提前致谢.

.net c# wpf enums converter

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

如何表示具有相同行为的不同实体?

我的域模型中有几个不同的实体(动物物种,比方说),每个实体都有一些属性.实体是只读的(它们在应用程序生命周期内不会改变状态)并且它们具有相同的行为(仅由属性值不同).

如何在代码中实现这样的实体?

不成功的尝试:

枚举

我尝试了这样的枚举:

enum Animals {
    Frog,
    Duck,
    Otter,
    Fish  
}
Run Code Online (Sandbox Code Playgroud)

其他代码片段将打开枚举.然而,这导致丑陋的切换代码,分散逻辑和组合框的问题.列出所有可能的动物没有很好的方法.序列化虽然很好.

子类

我还想过每个动物类型在哪里是公共基础抽象类的子类.但是,对于所有动物来说,Swim()的实现是相同的,因此它没有多大意义,可串行化现在是一个大问题.由于我们代表一种动物类型(种类,如果你愿意),每个应用程序应该有一个子类的实例,当我们使用序列化时,这很难维护.

public abstract class AnimalBase {
    string Name { get; set; } // user-readable
    double Weight { get; set; }
    Habitat Habitat { get; set; }
    public void Swim(); { /* swim implementation; the same for all animals but depends                  uses the value of Weight */ }
}

public class Otter: AnimalBase{
    public Otter() {
        Name = …
Run Code Online (Sandbox Code Playgroud)

c#

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

将枚举数据绑定到WPF + MVVM中的ComboBox

我在这里已经阅读了这个非常相关的问题,由于答案中的链接,它非常有用.我现在只是遇到一个问题需要额外的步骤,并使其与MVVM模式一起工作.

假设我有自己的ViewModel,它(甚至模型)可以定义一个枚举:

public enum MyTypes { Type1, Type2, Type3 };
Run Code Online (Sandbox Code Playgroud)

我想在我的GUI中将其数据绑定到ComboBox.根据这篇文章,我将使用ObjectDataProvider来调用MyTypes上的Enum.GetValues()方法.所以我必须将MyTypes作为MethodParameter传递.但你怎么通过这种类型?我尝试了各种方法,比如在XAML中添加对命名空间的引用:

    <Window.Resources>
        <ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="TipHandlingValues">
            <ObjectDataProvider.MethodParameters>
                <!-- what goes here?  it's totally wrong. -->
                <my:MyTypes />
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Window.Resources>
Run Code Online (Sandbox Code Playgroud)

几乎没有我放在那里甚至会编译.有谁知道如何克服这个小障碍?

data-binding wpf enums combobox mvvm

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

如何将枚举绑定到列表框?

我有一个Silverlight(WP7)项目,并希望将枚举绑定到列表框.这是一个包含自定义值的枚举,位于类库中.我该怎么做呢?

c# xaml windows-phone-7

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

将 Combobox 绑定到一个枚举,除了一个枚举元素

实际上,我可以将我的绑定ComboboxEnum使用他们的DescriptionAttribute

<ComboBox ItemsSource="{Binding Source={extension:Enumeration {x:Type model:MyEnum}}}"
      DisplayMemberPath="Description" 
      SelectedValue="{Binding Path=DataContextEnumProp}"
      SelectedValuePath="Value"/>
Run Code Online (Sandbox Code Playgroud)

我用过这个 SO 答案

我的枚举是:

public enum MyEnum
{
    [XmlEnum("first")]
    [Description("first")]
    FirstEnumMember,

    [XmlEnum("second")]
    [Description("second")]
    SecondEnumMember,

    //[XmlIgnore]
    [Description("second")]
    AlternativeToSecondEnumMember //I don't want this one to be in the combobox
}
Run Code Online (Sandbox Code Playgroud)

我需要隐藏AlternativeToSecondEnumMember,因为在ComboBox.

为此,最好的解决方案是什么?也许 aConverter或将ItemsSourcein 代码设置在后面?

c# wpf enums binding combobox

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

将枚举数据绑定到WPF中的ComboBox,过滤一些枚举

我需要将枚举绑定到DataGridTemplateColumn中的组合框,但只包含枚举所具有的一些选项.
示例:
枚举选项: 未知,,,,,所有
可绑定的:,,,

有什么办法吗?
非常感谢.

最好的祝福

wpf combobox datagridtemplatecolumn

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

无法在WF4中的Combobox中显示枚举

我试图在我的WF4项目中遵循这篇文章中的解决方案:将枚举属性数据绑定到WPF中的ComboBox

我已经实现了代码

<ObjectDataProvider MethodName="GetValues"
    ObjectType="{x:Type s:Enum}"
    x:Key="DayOfWeekValues">
    <ObjectDataProvider.MethodParameters>
        <x:Type TypeName="s:DayOfWeek" />
    </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>

<ComboBox ItemsSource="{Binding Source={StaticResource DayOfWeekValues}}"/>
Run Code Online (Sandbox Code Playgroud)

我在TypeName ="s:DayOfWeek"属性上收到以下错误.

Cannot reparent the node "Type(System.DayOfWeek)" from the old parent "IList" to the new parent "ObjectDataProvider".
Run Code Online (Sandbox Code Playgroud)

有关此错误含义的任何想法?

编辑:除了上面的错误,我还在ObjectDataProvider上的MethodName ="GetValues"属性上收到以下错误.

INCORRECT_PARAMETER_TYPE
Run Code Online (Sandbox Code Playgroud)

wpf xaml

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