小编Jas*_*era的帖子

自定义控件依赖项属性绑定

即使是最基本的例子,我也会疯狂地试图让它工作.我不能为我的生活得到约束力.这是一个不适合我的超级简单示例.我必须做错事.

我的控件库程序集中的自定义控件:

public class TestControl : Control
{
    public static readonly DependencyProperty TestPropProperty =
        DependencyProperty.Register("TestProp", typeof(string), typeof(TestControl), new UIPropertyMetadata(null));

    public string TestProp
    {
        get { return (string)GetValue(TestPropProperty); }
        set { SetValue(TestPropProperty, value); }
    }

    static TestControl()
    {
        DefaultStyleKeyProperty.OverrideMetadata(typeof(TestControl), new FrameworkPropertyMetadata(typeof(TestControl)));
    }
}
Run Code Online (Sandbox Code Playgroud)

它的XAML模板:

<Style TargetType="{x:Type local:TestControl}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type local:TestControl}">
                <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
                    <StackPanel>
                        <TextBlock Text="Testing..." />
                        <Label Content="{Binding TestProp}" Padding="10" />
                    </StackPanel>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

这是XAML在wpf窗口中使用控件来引用我的控件库:

<Grid>
    <ItemsControl Name="mylist">
        <ItemsControl.ItemTemplate>
            <DataTemplate> …
Run Code Online (Sandbox Code Playgroud)

wpf dependency-properties wpf-controls

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

始终在HighCharts中的列上方显示数据标签

如何设置HighCharts选项以确保始终呈现列图,其中数据标签始终位于列的顶部?附件是一个示例,其中我的一个标签被强制在下面.

我在dataLabels中尝试了很多组合而没有运气:

    plotOptions: {
        column: {
            dataLabels: {
                enabled: true
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

JSFiddle:在这里

HighCharts示例

highcharts

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

在没有密钥的情况下为JQuery Unobtrusive验证摘要添加错误

我有一个使用不显眼的JQuery验证和验证摘要的表单.它很棒.但是,此表单执行Ajax POST,返回JSON结果.如果结果== true,那么我继续.但是,如果JSON结果返回一个消息数组,我想触发表单验证以更新字段.错误返回如下:

{
    "errors": [ 
       { "key" : "NameFirst", "message": "This is the message" },
       { "key" : "NameLast", "message": "This is the message" } 
     ]
}
Run Code Online (Sandbox Code Playgroud)

我解析JSON结果并调用showErrors(),如下所示:

for (var j = 0; j < response.errors.length; j++) {
    var key = response.errors[j].key;
    var error = {};
    error[key] = response.errors[j].message;
    $form.data('validator').showErrors(error);
}
Run Code Online (Sandbox Code Playgroud)

这会正确突出显示字段,但不会更新验证摘要.我怎样才能更新?

此外,有时错误是通用的,不会映射到模型中的特定属性/字段.在这种情况下,它们返回null键,如:

{
     "errors": [ 
        { "key" : null, "message": "This is the message" },
        { "key" : null, "message": "This is the other message" }, 
        { "key" …
Run Code Online (Sandbox Code Playgroud)

jquery unobtrusive-validation asp.net-mvc-4

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

任何人都知道任何与MVC Unobtrusive Validation一起使用的jQuery Mask插件吗?

我一直在ASP.Net应用程序中使用以下掩码输入插件:

http://digitalbush.com/projects/masked-input-plugin/

不幸的是,这不适合MVC不显眼的验证.验证会在每个令人讨厌的密钥上触发.另外,当输入失去焦点时,regex属性总是失败,因为它在掩码控件清除之前将掩码读取为实际用户输入.

有人遇到过蒙面文本框解决方案,可以很好地运行MVC验证吗?

jquery-plugins maskedtextbox unobtrusive-validation asp.net-mvc-3

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

MVC DropDownListFor和StringLength属性不能很好地一起播放

我的stringlength验证总是在带有字符串值的下拉列表中失败.

这是我的模型:

[Required(ErrorMessage = "Required")]
[StringLength(2, MinimumLength = 2)]
[Display(Name = "Home Address State")]
public string HomeAddressState { get; set; }
Run Code Online (Sandbox Code Playgroud)

这是我的观点:

@Html.DropDownListFor(model => model.HomeAddressState, new SelectList(ViewBag.States, "Value", "Text"), string.Empty)
@Html.ValidationMessageFor(model => model.HomeAddressState)
Run Code Online (Sandbox Code Playgroud)

这是html输出:

<select data-val="true" data-val-length="The field Home Address State must be a string with a minimum length of 2 and a maximum length of 2." data-val-length-max="2" data-val-length-min="2" data-val-required="Required" id="HomeAddressState" name="HomeAddressState"><option value=""></option>
<option value="CA">California</option>
<option value="IL">Illinois</option>
<option value="IN">Indiana</option>
<option value="OH">Ohio</option>
</select>
Run Code Online (Sandbox Code Playgroud)

无论选择哪个选项,StringLength验证都会在客户端失败.我做错了什么?

asp.net-mvc html.dropdownlistfor unobtrusive-validation

5
推荐指数
2
解决办法
1135
查看次数

使用JSON.Net对具有混合类型的数组进行序列化/反序列化

我正在尝试为需要发送/接收的JSON编写一些C#包装类.在一个例子中,我收到了一个混合类型的多维数组:

stops: [
    [0.1, "#55BF3B"],
    [0.5, "#DDDF0D"],
    [0.9, "#DF5353"]
 ]
Run Code Online (Sandbox Code Playgroud)

如何在类属性中表示?

[JsonProperty("stops")]
public WhatType?[] Stops { get; set; }
Run Code Online (Sandbox Code Playgroud)

我真正喜欢的是如下课程:

public class Stop
{
    public decimal Value { get; set; }
    public string Color { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这将序列化/反序列化为一个数组(没有属性名称):

[.1, "#000000"]
Run Code Online (Sandbox Code Playgroud)

然后我的Stops属性可能只是一个Stop数组.但是,即使使用自定义转换器,我也不确定这是否可行.有任何想法吗?

c# json.net

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

WPF动画仅触发一次

我有一个小椭圆,每当依赖项属性设置为true时,我都会闪烁。因为该属性可以在几毫秒内迅速从true变为false,所以我需要使用动画而不是简单的样式数据触发来实现。基本上,我只想要真正的值来对椭圆上的动画执行ping操作。

<Ellipse Height="10" Width="10" Stroke="#FFFFFFFF" Margin="5,3,0,0">
    <Ellipse.Fill>
        <SolidColorBrush />
    </Ellipse.Fill>
    <Ellipse.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsReceiving}" Value="True" >
                    <DataTrigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="Fill.Color">
                                    <ColorAnimationUsingKeyFrames.KeyFrames>
                                        <DiscreteColorKeyFrame KeyTime="0:0:0" Value="Red"/>
                                        <DiscreteColorKeyFrame KeyTime="0:0:0.25" Value="Transparent"/>
                                    </ColorAnimationUsingKeyFrames.KeyFrames>
                                </ColorAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Ellipse.Style>
</Ellipse>
Run Code Online (Sandbox Code Playgroud)

该动画似乎可以正常运行,但仅在值首次变为true时才触发。我想念什么吗?

更新:谢谢大家的投入。事实证明,这是一个线程问题。最初,我在控件上有一个DP,该DP绑定到实现了INotifyPropertyChanged的视图模型。然后,我尝试删除控件上的DP并将视图模型属性转换为DP。繁荣,那是我开始收到错误消息,指出该对象拥有另一个线程。我意识到我需要像在应用程序其他部分中所做的那样,使用响应式扩展来合并一些Observable。我使用PropertyChanged()恢复为视图模型的传统属性,并将其简单地绑定到控件的动画。现在一切都完美无瑕。

wpf datatrigger

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

带模板的Asp.Net MVC EditorFor Array

我有一个ClassA模型,它具有一个ClassB数组属性.

public class ClassA
{
    public string ClassAProperty1 { get; set; }
    public string ClassAProperty2 { get; set; }
    public ClassB[] MySubCollection { get; set; }
}

public class ClassB
{
    public string Prop1 { get; set; }
    public string Prop2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想在表格中编辑ClassB的实例.我为ClassB创建了一个EditorTemplate,用于创建表格行.

    @model ClassB
    <tr>
        <td>@Html.TextBoxFor(m => m.Prop1)</td>
        <td>@Html.TextBoxFor(m => m.Prop2)</td>
    </tr>
Run Code Online (Sandbox Code Playgroud)

这对于ClassA的编辑视图非常有用,因为MVC会自行完成所有字段索引魔术:

@Html.TextBoxFor(m => m.ClassAProperty1)
@Html.TextBoxFor(m => m.ClassAProperty2)

<table>
    <tr>
        <th>Col</th>
        <th>Col</th>
    </tr>
    @Html.EditorFor(m => m.MySubCollection)
</table>
Run Code Online (Sandbox Code Playgroud)

但是,我实际上想为包含表标记的数组创建一个编辑器模板,如下所示:

@model ClassB[]
<table>
    <tr>
        <th>Col</th>
        <th>Col</th> …
Run Code Online (Sandbox Code Playgroud)

c# asp.net asp.net-mvc mvc-editor-templates razor

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