【发布时间】:2014-10-02 13:26:20
【问题描述】:
我有一个带有 DataGrid 和 TextBox 的自定义 UserControl,我正在尝试使用 DependencyProperties 将数据绑定到这些元素。绑定适用于 DataGrid,但不适用于 TextBox。
代码:
public static readonly DependencyProperty BuiDataProperty = DependencyProperty.Register("BuiData", typeof(IEnumerable), typeof(BelastingTab), new PropertyMetadata(default(IEnumerable), BuiDataChanged));
private static void BuiDataChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var Object = d as BelastingTab;
if (Object == null) return;
Object.BuiDataDataSourceChanged(d, e);
}
private void BuiDataDataSourceChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
BuiDataTabel.ItemsSource = dependencyPropertyChangedEventArgs.NewValue as IEnumerable;
}
public IEnumerable BuiData
{
get { return (IEnumerable)GetValue(BuiDataProperty); }
set { SetValue(BuiDataProperty, value); }
}
在主 XAML 中:
<src:BelastingTab BuiData="{Binding Path=Static.BuienRegulier[0].BuiTabel}"/>
这是设置 DataGrid 绑定的代码,我该如何为 TextBox 做同样的事情?
编辑: 这是我目前拥有的,
主要 XAML:
<src:BelastingTab BuiData="{Binding Path=Static.BuienRegulier[0].BuiTabel}" HerhalingsTijd="{Binding Path=Static.BuienRegulier[0].HerhalingsTijd}"/>
这是指一个字符串。在用户控件 XAML 中:
<TextBox Text="{Binding HerhalingsTijd, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
在 UserControl XAML CS 中:
public static readonly DependencyProperty HerhalingsTijdProperty = DependencyProperty.Register("HerhalingsTijd", typeof(string), typeof(BelastingTab), new PropertyMetadata(string.Empty));
public string HerhalingsTijd
{
get { return (string)GetValue(HerhalingsTijdProperty); }
set { SetValue(HerhalingsTijdProperty, value); }
}
【问题讨论】:
标签: c# wpf xaml data-binding textbox