XML中的绑定按钮单击事件

XML中的绑定按钮单击事件

问题描述:

我试图从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> 

有了这个,正确生成按钮的列表,但问题我还需要“自动”为每个按钮分配一个Click事件。是否可以指定XML文档中的点击事件? 喜欢的东西:

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

但它不工作。

感谢您的帮助!

+0

[Binding Button click to a method]可能重复(http://*.com/questions/3531772/binding-button-click-to-a-method) – Tomalak

+0

+1重复。请参阅其他问题以获得解决方案(命令绑定)。 – jv42

这不能工作,因为事件处理程序在编译时解析;在你的情况下,事件处理程序的名称直到运行时才会知道。无论如何,你不能在一个事件上设置绑定(尽管在.NET 4.5中可能)。