Silverlight DataTemplate에서 이벤트를 바인딩 할 수 있습니까? 그렇다면 최선의 방법은 무엇입니까? 그런 다음Silverlight DataTemplate에서 이벤트를 바인딩 할 수 있습니까?
<UserControl.Resources>
<DataTemplate x:Key="MyDataTemplate" >
<Grid>
<Button Content="{Binding ButtonText}" Margin="4" />
</Grid>
</DataTemplate>
</UserControl.Resources>
, 당신은 다음과 같이 목록 상자 ItemTemplate을에 적용 : 예를 들어
, 당신은 이런 식으로 버튼이있는 DataTemplate을을 만든 말<Grid x:Name="LayoutRoot" Background="White">
<ListBox x:Name="lbListBox" ItemTemplate="{StaticResource MyDataTemplate}" />
</Grid>
당신은 클래스의 객체의 목록에 목록 상자의 ItemSource을 설정 한 경우 :
public class MyDataClass
{
public string ButtonText{ get; set; }
}
어떻게 당신이 일 붙잡는 e 단추 목록의 DataTemplate에서 각 단추를 클릭? 바인딩을 사용하여 Click 이벤트를 "MyButtonClass"의 메서드에 바인딩 할 수 있습니까?
<UserControl.Resources>
<DataTemplate x:Key="MyDataTemplate" >
<Grid>
<Button Click="{Binding OnItemButtonClick}" Content="{Binding ButtonText}" Margin="4" />
</Grid>
</DataTemplate>
</UserControl.Resources>
이 방법이 가능합니까? 그렇다면 이벤트를 잡으려면 "MyDataClass"에 무엇을 넣어야합니까?
덕분에, 제프
이것은 명령이 더 나은 이유입니다. .NET 4 프레임 워크에서는 이벤트와 달리 명령을 바인딩 할 수 있으므로 코드 비하인드 및 바인딩 기능이없는 MVVM을 계속 사용할 수 있습니다. –