2.Xaml绑定选择结果
<StackPanel Orientation="Vertical"><TextBlock Margin="10,10,10,10" FontWeight="Bold"> Pick a color from below list</TextBlock><ListBox Name="mcListBox" Height="100" Width="100" Margin="10,10,0,0" HorizontalAlignment="Left" ><ListBoxItem>Orange</ListBoxItem><ListBoxItem>Green</ListBoxItem><ListBoxItem>Blue</ListBoxItem><ListBoxItem>Gray</ListBoxItem><ListBoxItem>LightGray</ListBoxItem><ListBoxItem>Red</ListBoxItem></ListBox><TextBox Height="23" Name="textBox1" Width="120" Margin="10,10,0,0" HorizontalAlignment="Left" ><TextBox.Text><Binding ElementName="mcListBox" Path="SelectedItem.Content"/></TextBox.Text></TextBox><Canvas Margin="10,10,0,0" Height="200" Width="200" HorizontalAlignment="Left"><Canvas.Background><Binding ElementName="mcListBox" Path="SelectedItem.Content"/></Canvas.Background></Canvas> </StackPanel>
3.绑定ListBox.Templete 模板内容
/// <summary> /// List3.xaml 的交互逻辑 /// </summary> public partial class List3 : Window {public List3(){InitializeComponent();listBox.ItemsSource = new List<UserItem>() {new UserItem(1,"张三",true),new UserItem(2,"李四",false),new UserItem(3,"王五",false),new UserItem(4,"赵六",true)};}private void Button_MouseDoubleClick(object sender, MouseButtonEventArgs e){Button btn = sender as Button;if (btn != null){Image img = btn.FindName("img") as Image;if (img != null){MessageBox.Show(img.Source.ToString());}}} } public class UserItem {public UserItem(int ID, string Name, bool IsActive){this.ID = ID;this.Name = Name;this.IsActive = IsActive;}public int ID { get; set; }public string Name { get; set; }public bool IsActive { get; set; }public string BackGround{get {return this.IsActive? "/images/1.jpg": "/images/2.jpg";}} }
Xaml定义
<Grid><Grid.RowDefinitions><RowDefinition Height="33*"/><RowDefinition Height="236*"/></Grid.RowDefinitions><ListBox x:Name="listBox" Grid.Row="1" Margin="30"><ListBox.ItemTemplate><DataTemplate><Button MouseDoubleClick="Button_MouseDoubleClick"><Grid><Image x:Name="img" Source="{Binding Path=BackGround}" Width="50" Height="30"></Image><TextBlock Text="{Binding Path=Name}" Margin="70 10" FontSize="18" Foreground="Red" FontWeight="Bold"></TextBlock></Grid></Button></DataTemplate></ListBox.ItemTemplate></ListBox><Label x:Name="label" Content="List模板绑定" HorizontalAlignment="Left" Margin="21,6,0,0" VerticalAlignment="Top"/> </Grid>
显示结果: