• Wpf控件ListBox使用实例2


    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>
  • 相关阅读:
    信息系统项目管理师2009年上午试题分析与解答
    信息系统项目管理师2005年上半年试题
    信息系统项目管理师2008年下半年试题
    信息系统项目管理师历年上午试题答案及试题和大纲
    信息系统项目管理师2008年上半年试题
    信息系统项目管理师2005年下半年试题
    信息系统项目管理师2006年下半年试题
    一个经典的问题(构造函数调用+抽象类+间接继承抽象类)
    重载构造函数+复用构造函数+原始构造与This引用的区别(一步步案例分析)
    GetType()与Typeof()的区别 举了2个案例
  • 原文地址:https://www.cnblogs.com/sjqq/p/6633482.html
Copyright © 2020-2023  润新知