Silverlight实体绑定用户控件设计问题

时间:2011-02-14 09:13:36

标签: c# silverlight entity-framework wcf-ria-services

我对Silverlight相对较新,所以我的问题总是有点令人困惑。恩威,问题是:

我需要一个可重复使用的控件,用于预览和修改数据库中的数据。 这是电话编辑控件。

问题是电话数据是作为实体存储在数据库中的(具有国家代码,数字和扩展名以及一组安全字段的单独表格),我仍然没有看到实现它的干净方法。

我做了什么:

1)我创建了新的用户控件 2)我为它创建了模型来表示数据库中的数据 3)我已经在silverlight控件上声明了依赖属性,它表示控件绑定的Entity对象 4)我已经实现了依赖性更新回调,这就是麻烦开始的地方。

public partial class TelephoneControl
{

    public TelephoneModel Model
    {
        get { return (TelephoneModel)DataContext; }
        set { DataContext = value; }
    }
    public static readonly DependencyProperty TelephoneProperty = 
        DependencyProperty.Register("Telephone", typeof(Telephone), typeof(TelephoneControl),
        new PropertyMetadata(null, TelephoneChanged));

    private static void TelephoneChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        ((TelephoneControl) d).HandleTelephonChanged(e);
    }
    protected void HandleTelephonChanged(DependencyPropertyChangedEventArgs e)
    {
        if (!_changingContext)
        {
            _changingContext = true;

            var val = (Telephone) e.NewValue;

            if (val == null)
            {
                Model = GetNewModel();
                RaiseEntityAdded();
            }
            else
            {
                Model = GetModelByPhone(val);
            }
        }

        _changingContext = false;
    }
...........

}

正如你所看到的,我没有找到一个更好的地方来创建控制模型,而不是d.p.打回来。我有强烈的填充,我做错了什么。

0 个答案:

没有答案