2010-06-25 3 views
1

안녕하세요. 실버 라이트를 처음 접했고 ListBoxItem의 일부인 버튼 컨트롤에 액세스하려고합니다. 그러나, 나는 이것을 어떻게하는지 잘 모르겠습니다. 내 XAML은 다음과 같습니다.Silverlight의 ListBoxItem에서 액세스 버튼

<DataTemplate x:Key="ItemTemplate2"> 
      <Grid Height="51"> 
       <TextBlock x:Name="tbName" Text="{Binding Property1}" Margin="0,0,98,0" d:LayoutOverrides="Height" Grid.ColumnSpan="2" HorizontalAlignment="Left" VerticalAlignment="Center"/> 
       <Button x:Name="btnInfo" HorizontalAlignment="Right" Margin="0,-11,0,0" Width="87" Height="54" VerticalAlignment="Top" Background="#FF8EC1D2" BorderBrush="#FF8EC1D2" BorderThickness="0"> 
        <Image Source="../Images/btnNameImage.png" Stretch="None"/>     
       </Button> 
      </Grid> 
     </DataTemplate> 

코드 숨김에서 "btnInfo"에 액세스하려면 어떻게해야합니까? 어떤 도움

+0

btnInfo의 어떤 속성에 액세스하려고하십니까? "btnInfo"로 직접 사용할 수 있어야합니다 ... – VoodooChild

+0

이것은 DataTemplate의 일부이므로 페이지의 XAML과 다른 이름 범위에 있으며 코드 숨김에서 직접 액세스 할 수 없습니다. 정확히 버튼으로 무엇을하려고합니까? –

+0

버튼의 이미지를 변경하고 싶습니다. – TryNCode

답변

1

당신이 늘 뒤에 코드에서 직접 액세스 할 수 있지만, 당신이 그것으로 이벤트를 등록하여 당신이 원하는 것을 할 수 있어야에 대한

감사합니다. 버튼에 Loaded 이벤트를 추가 한 다음 코드 숨김에서 해당 메소드를 정의하십시오.

protected btninfo_Loaded(object sender, EventArgs e) 
{ 
    Button btnInfo = (Button) sender; 
    //do whatever you need to do 
} 

분명히 당신은 당신이 원하는 이벤트를 클릭하거나 처리하기 위해 같은 일을 할 수 있습니다.

+0

감사합니다. 선택한 목록뿐만 아니라 목록의 모든 단추에 대해이 작업을 수행하고 싶습니다. 이미지 교체를 위해 스토리 보드를 만들려고했지만 스토리 보드를 코드 뒤에 액세스 할 수 없습니다. – TryNCode

+0

DataTemplates 중 하나가 템플릿에로드 될 때마다이 작업이 실행되어야합니다. 템플릿을 호스팅하는 ItemsControl과 같은 코드를 더 많이 보여 주시겠습니까? – luke

+0

감사합니다. 버튼 이벤트 자체 외부에서 버튼에 액세스해야 했으므로 각 버튼을 배열에 저장했습니다. 이벤트) 및 배열 수준의 클래스 변수를 만듭니다.이 작동합니다. 다시 한 번 감사드립니다! – TryNCode

0

이것은 데이터 템플릿에 프로그래밍 방식으로 액세스하는 질문에 직접적으로 대답하지 않지만 Binding은 어떻습니까?