Windows Phone 7에서 작동하는 UserControl을 얻으려고합니다. 제가 바인딩하려는 몇 가지 속성을 가지고 있지만, DependencyProperties 또는 DependencyProperties로 추가하는지 여부에 관계없이 채워지지 않습니다. 아니. 내가 그들을 작동시킬 수있는 유일한 방법은 대신 DataContext를 설정하는 것입니다. 내가 해봤 코드는 (하나 개의 속성)입니다 :Windows Phone - DependencyProperties
public static readonly DependencyProperty MaximumItemsProperty = DependencyProperty.Register("MaximumItems", typeof(int), typeof(ManageIngredientsControl), new PropertyMetadata(0));
/// <summary>
/// Gets or sets the maximum number of items to match.
/// </summary>
/// <value>The maximum number of items to match.</value>
public int MaximumItems
{
get { return Convert.ToInt32(base.GetValue(MaximumItemsProperty)); }
set { base.SetValue(MaximumItemsProperty, value); }
}
<TextBox Grid.Row="1" Grid.Column="1" x:Name="nudMaxIngredients" Width="120" Text="{Binding MaximumItems,Mode=TwoWay,ElementName=root}" InputScope="Number" />
루트 UserControl을 요소는 '루트'라고하지만, 값이 채워지지 않습니다. 이 반 작업을 얻을 수있는 유일한 방법은이를 사용하는 것입니다 :
public int MaximumItems
{
get { return Convert.ToInt32(DataContext) }
set { DataContext = value; }
}
그것은 뭔가 DataContext를 방해,하지만 내가 DependencyProperties에 결합하고있어 경우에 왜 중요 할 것 같다?
아마도 DataContext 상속과 관련이 있을지 모르지만 나머지 시각적 인사말을 통해이를 알 수 있어야합니다. WP7에서 Silverlight Spy를 사용하여 시각적 트리를 조사하고 언제든지 DataContext가 무엇인지 확인할 수 있습니다. 출력 창에 바인딩 오류가 있습니까? –
감사합니다. 훌륭한 도구입니다. datacontext는 상위 ViewModel에서 usercontrol을 통해 ta4rget 텍스트 상자까지 상속 된 것처럼 보입니다. 나는 아직도 그것이 의존적 인 속성에 묶이지 않는 이유를 이해하지 못한다. http://img600.imageshack.us/img600/2835/datactx.th.png – Echilon