DataGrid 및 TextBox가 포함 된 사용자 지정 UserControl이 있는데,이 요소에 대해 DependencyProperties를 사용하여 데이터 바인딩을 시도하고 있습니다. 바인딩은 DataGrid에는 좋지만 TextBox에는 적합하지 않습니다.DependencyProperty를 사용하여 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에 바인딩을 설정하는 코드가 나는 텍스트 상자에 대해 같은 일에 대해 어떻게 갈 것입니까?
편집 : 이 내가 현재 가지고있는 것입니다,
홈페이지 XAML은 :
<src:BelastingTab BuiData="{Binding Path=Static.BuienRegulier[0].BuiTabel}" HerhalingsTijd="{Binding Path=Static.BuienRegulier[0].HerhalingsTijd}"/>
이 문자열을 의미한다. UserControl을 XAML에서 : UserControl을 XAML CS에서
<TextBox Text="{Binding HerhalingsTijd, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
:
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); }
}
내가 가지고있는 편집 작업을 게시했습니다. 어떤 작업이 이루어지지 않았습니까? – user3692104
RelativeSource를 추가 한 후에 작동합니까? – user3692104
사용자 컨트롤에서 클래스 속성 뒤에있는 코드에 액세스 할 수있는 유일한 방법이기 때문에 상대 소스가 필요합니다. 컨트롤에 데이터 컨텍스트가 없으므로 데이터 컨텍스트를 Self로 만들거나 상대 소스를 사용하여 코드 배후에서 속성에 액세스하므로 바인딩에서 속성을 가져올 곳을 알 수 있습니다. 이걸 완전히 이해하려면 약간의 실험과 독서가 필요합니다. – XMight