그래서 ItemTemplate을 사용하여 이미지를 표시하는 Listbox가 있습니다. ItemTemplate에서 표시된 이미지의 크기를 변경할 수 있어야합니다. databinding을 통해 너비를 변경할 수 있지만이 작업을 수행하는 방법을 볼 수있는 유일한 방법은 바인딩 할 클래스에 Property (Say, ImageSize)를 추가 한 다음 colleciton의 모든 항목을 새 ImageSize로 변경하는 것입니다. 해당 Datatemplate에있는 항목의 속성에 액세스 할 수있는 방법이 있습니까?Silverlight에서 프로그래밍 방식으로 Data/ItemTemplate을 변경할 수있는 방법이 있습니까?
예.
<navigation:Page.Resources>
<DataTemplate x:Key="ListBoxItemTemplate">
<Viewbox Height="100" Width="100">
<Image Source="{Binding Image}"/>
</Viewbox>
</DataTemplate>
</navigation:Page.Resources>
<Grid>
<ListBox ItemTemplate="{StaticResource ListBoxItemTemplate}" ItemSource="{Binding Collection}"/>
</Grid>
컬렉션의 모든 요소에 속성을 바인딩하지 않고 너비 및 뷰 박스의 높이를 설정 어쨌든 있나요?
ElementName 바인딩은 Silverlight 3 이상에서만 작동합니다. Silverlight 4를 사용하고 있기 때문에 작동해야합니다! :) – Arcturus
이렇게 사용하면 숨겨진 텍스트 상자 나 다른 것을 가지고 프로그래밍 방식으로 템플릿을 업데이트 할 수 있습니까? 아니면 그 해커가 더 좋은 방법이 그것을 할 수 있습니까? –
UserControl의 이름을 지정하고 UserControl에서 사용자 지정 속성을 사용할 수도 있다고 생각합니다. 그렇게 할 경우 INotifyPropertyChanged를 구현하고이 속성을 변경할 때 PropertyChanged 이벤트를 발생 시키십시오. – Sorskoot