2011-12-13 3 views
0

XML 파일에서 단추 목록을 자동으로 생성하려고합니다. 여기 바인딩 단추 XML에서 이벤트를 클릭하십시오.

내 XML입니다 :

<WPFDS> 
    <Title>Hospital</Title> 
    <BUTTONS> 
     <BUTTON id="1" visible="1"> 
       <Text>Content1</Text> 
       <Program>b1_Click<Program> 
     </BUTTON> 
     <!-- ... --> 
    </BUTTONS> 
</WPFDS> 

WPF가 자동으로 "버튼리스트"를 생성 할 수있는 코드 :이

<XmlDataProvider x:Key="wpfds"    
        Source="Config/Config.xml"   
        XPath="/WPFDS"   
        IsAsynchronous="False"   
        IsInitialLoadEnabled="True" 
/> 
<!-- ... --> 
<ListBox x:Name="lbBotones" 
     ItemsSource="{Binding Source={StaticResource wpfds}, XPath=./BUTTONS/BUTTON}" 
     Margin="0,19,0,354" Grid.Row="1" IsEnabled="True" Width="607"      
     HorizontalContentAlignment="Stretch" BorderBrush="{x:Null}" 
     Background="{x:Null}" 
     ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
     ScrollViewer.VerticalScrollBarVisibility="Disabled" Height="346" 
> 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapPanel IsItemsHost="True" Orientation="Horizontal"/> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
    <ListBox.ItemTemplate>      
     <DataTemplate>       
      <Button Height="50" Width="150" Margin="70,10" 
        Content="{Binding XPath=./Text}"          
      />       
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

, 버튼의 목록이 제대로 생성됩니다,하지만 문제 각 버튼에 클릭 이벤트를 "자동으로"지정해야한다는 것입니다. XML 문서에서 click 이벤트를 지정할 수 있습니까? 다음과 같이 표시됩니다.

Click="{Binding XPath=./Program}" 

하지만 작동하지 않습니다.

도움 주셔서 감사합니다.

+0

[바인딩 버튼 클릭 방법] (http://stackoverflow.com/questions/3531772/binding-button-click-to-a-method) – Tomalak

+0

+1 복제 가능. 솔루션에 대한 다른 질문 (명령 바인딩)을 참조하십시오. – jv42

답변

0

이벤트 처리기가 컴파일 타임에 해결되므로이 기능을 사용할 수 없습니다. 귀하의 경우 이벤트 처리기의 이름을 런타임까지 알 수 없습니다. 어쨌든, 이벤트에 바인딩을 설정할 수는 없습니다 (.NET 4.5에서 가능할 수도 있음).

관련 문제