【问题标题】:Retrieve values entered through a usercontrol检索通过用户控件输入的值
【发布时间】:2011-04-05 03:02:41
【问题描述】:

我有一个由两个 DateTimePicker 组成的用户控件 该组件必须是可重用的,并且应该公开定义例如元素的可见性、容器的宽度等的属性。 当然,我可以检索输入的值。

所以我创建了足够的 DependencyProperty

        public DateTime StartDateValue
    {
        get { return (DateTime)GetValue(StartDateValueProperty); }
        set { SetValue(StartDateValueProperty, value); }
    }

    // Using a DependencyProperty as the backing store for StartDateValue.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty StartDateValueProperty =
        DependencyProperty.Register("StartDateValue", typeof(DateTime), typeof(HSWDateTimePicker), new PropertyMetadata(HSWDateTimePicker.StartDateValueChanged));

当我在视图中使用我的 UserControl 时,我不知道如何在我的视图模型中获取在我的用户控件的 DatePicker 中输入的值。

我的用户控件:

<my:myDateTimePicker StartDateValue="{Binding StartDateDebut, Mode=TwoWay}" x:Name="myPeriod" />

还有我的按钮:

<Button Content="Ok" Width="75" Height="20" Command="{Binding Path=SaveCommand, Mode=OneTime}"/>

谢谢,PM

【问题讨论】:

    标签: silverlight user-controls mvvm


    【解决方案1】:

    有两件事要检查。确保您的用户控件的数据上下文是您的视图模型。

    确保您在视图模型中绑定的属性实现了 INotifyPropertyChanged。否则视图模型中的更改将不会更新您的用户控件。

    确保在 Dependancy 属性的更改事件上设置日期时间选择器的值。

    【讨论】:

    • 感谢您的回答,但我不希望我的用户控件的 DataContext 以特定的 VIEWMODEL 为目标。因为我的 UserControl 必须是可重用的。我实际上通过此链接找到了解决方案:stackoverflow.com/questions/1526767/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    相关资源
    最近更新 更多