Windows Phone 7.1 프로젝트 (WP 8.0 SDK)의 현재 항목에 바인딩, ItemTemplate의 현재 항목을 사용자 정의 컨트롤에 전달하고 싶습니다.ItemsControl (WP7.1/8.0/Silverlight)
XAML : ShipControl 뒤에
<ItemsControl.ItemTemplate>
<DataTemplate>
<local:ShipControl Ship="{Binding}" x:Name="ShipControl"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
코드 : 그러나
public object Ship
{
get
{
return GetValue(ShipProperty);
}
set
{
SetValue(ShipProperty, value);
}
}
//Used by xaml binding
public static readonly DependencyProperty ShipProperty = DependencyProperty.Register("Ship", typeof(Ship), typeof(Ship), new PropertyMetadata(null, new PropertyChangedCallback(OnShipChanged)));
private static void OnShipChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
//TODO: Set break point here
return;
}
, 선박을 디버깅 할 때 값 데이터 바인딩의 객체가 값으로 전달되지 선박 (그러므로 대신의 객체 타입입니다 반환 배). 결국 SetValue 예외가 발생합니다. Ship 속성의 다른 바인딩이 작동하기 때문에 아무런 아이디어가 없습니다. 이 질문에 의하면, 위의 작동합니다 :
WPF Pass current item from list to usercontrol
이 객체로 건네받는 대신 데이터 객체의 바인딩되어 있기 때문에, 데이터 바인딩에 예외를 발생시킵니다 샘플 프로젝트 여기를 참조하십시오. http://dl.dropbox.com/u/33603251/TestBindingApp.zip
나는, 다른 사이트에서 읽은 것을 한 {바인딩} 내가 인용 링크와 같은 : http://stackoverflow.com/questions/3106190/wpf-pass-current-item-from-list-to- usercontrol 나중에 시도해 볼께 고마워. – Boland
더 자세히 설명해주세요. 코드에서 속성을 추가해야하지만 반환해야하는 항목은 무엇입니까 ?? 데이터 아이템을 사용할 수있는 ItemsControl의 ItemTemplate에 있는데 왜 코드 숨김을 추가해야하는지 이해할 수 없습니다. 난 그냥 현재 데이터 항목을 얻고 싶습니다. ASP.Net에서 이것은 쉬울 것입니다, 왜 이렇게 WPF/SL에서 열심히 ... – Boland