代码之家  ›  专栏  ›  技术社区  ›  Rui Marinho

将验证弹出窗口添加到Silverlight数据窗体上的自定义组合框字段

  •  2
  • Rui Marinho  · 技术社区  · 14 年前

    我正在使用绑定到视图模型上的实体的数据表单,对于需要创建项组合框的一个字段,我使用以下代码在自动生成事件上创建它并将其绑定为ok:

                ComboBox makes = new ComboBox();
                  Binding selectedItem = new Binding("conc_claimtype")
                {  
                    ValidatesOnExceptions = true,
                    ValidatesOnDataErrors = true,
                     ValidatesOnNotifyDataErrors = true,
                    NotifyOnValidationError= true,
                    Mode = BindingMode.TwoWay
                };
                makes.Items.Add("AI");
                makes.Items.Add("CO");
                makes.Items.Add("RE");
    
                makes.SetBinding(ComboBox.SelectedItemProperty, selectedItem);
                DataField makesField = new DataField {  Content = makes, Label = e.Field.Label };
                e.Field = makesField;
                e.Cancel = false;
    

    我想弄清楚当字段是必需的时,如何使弹出窗口显示在组合框中,并像常规文本框那样显示错误消息,如果您将其设置为必需而未选择,它将给出验证错误,因为我可以在validationsummary上看到它,但它不会显示散页标签,只有错误信息,我想可能是个错误。

    我真正需要的是显示该字段是弹出式窗口(如文本框)所必需的,我想我必须对组合框进行某种样式才能显示验证错误,对吧?我在哪能找到这片森林?

    1 回复  |  直到 14 年前
        1
  •  2
  •   Rui Marinho    14 年前

    我通过一个小技巧解决了这个问题,我在domaincontext的元数据上添加了一个验证规则,我说值不能是空字符串,然后在组合框中向绑定添加一个转换器,当它为空时,我转换回一个空字符串,这样验证就可以正常工作了。在组合框上显示错误消息apear的opup。

    如果有人需要解决这个问题,我可以在这里发布一些代码。

    我在StackOverflow上的第一个问题,我自己回答;)哈哈

    推荐文章