• 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";
            }
        }
    }
    View Code

    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>

    显示结果:

  • 相关阅读:
    Java中的位运算符
    华为2019年NE40E-X8,承诺命令
    华为网络设备修改console密码
    MySQL5.7 多实例
    华为防火墙域间策略全开命令
    Linux基础命令---ntpstat显示时间服务器同步
    【转载】Java程序模拟公安局人员管理系统
    redis cluster集群动态伸缩--删除主从节点
    DBUtils的使用之查询的操作
    服务治理-Resilience4j(限流)
  • 原文地址:https://www.cnblogs.com/tianma3798/p/5755629.html
Copyright © 2020-2023  润新知