C# WPF 讓listbox的item只能單選item(即使有相同item內容)

  • 1471
  • 0

摘要:C# WPF 讓listbox的item只能單選item(即使有相同item內容)

這個東西看起來很簡單,

但是當我用原本的方法時,我加入一模一樣的item時,listbox就出錯了!

也不是真的出錯,就是他選擇了兩條item(一樣原因是他不知道兩個不同)。

 

去了英討還被人唸了一下說我WPF最好去重唸(但是我確實是自己熬的沒人教呀)Orz

 

現在介紹的Binding一直是我的痛crying

因為我很不會用.....

 

但是當我會用時,真是進入天堂呀!!!!!

 

所以將你的listbox改成這樣:


            <ListBox Height="248" HorizontalAlignment="Left" Margin="141,223,0,0" Name="listBox" VerticalAlignment="Top" Width="378">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Location}" />
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

 

接著去建立一個叫locatLost的`ObservableCollection`


        ObservableCollection<locateItem> locatList = new ObservableCollection<locateItem>();
        public class locateItem
        {
            public string Location { get; set; }
            public string Id { get; set; }
            public string Img { get; set; }
        }   

 

最後將資料繫結到你的listBox


listBox.ItemsSource = locatList;

 

到這裡你可能覺得很普通,

但是我告訴你,現在只要你修改locatList,你的lixtBox就會馬上反應!

所以昨天說得將項目往上和往下移就變得超簡單:


        private void btnUp_Click(object sender, RoutedEventArgs e)
        {
            if (listRoom.SelectedItem != null && listRoom.SelectedIndex != 0)
            {
                //=============================順序往上(第一筆不動)===========================//
                int ch = listRoom.SelectedIndex;
                locatList.Move(ch, ch - 1);
            }
        }

        private void btnDown_Click(object sender, RoutedEventArgs e)
        {
            if (listRoom.SelectedItem != null && listRoom.SelectedIndex != listRoom.Items.Count - 1)
            {
                //===========================順序往下(最後一筆不動)===========================//
                int ch = listRoom.SelectedIndex;
                locatList.Move(ch, ch + 1);
            }
        }

也就是從頭到尾你想怎麼改listbox的結果只要操作locatList就可以了!

超好用的!

難怪很多人推薦WPF~

對於資料繫結還不太了解的,

我推薦看這一篇:http://msdn.microsoft.com/zh-tw/magazine/cc163299.aspx
 

 

然後順便祝大家萬聖節快樂喔~
SV做的萬聖節小遊戲:
https://googledrive.com/host/0B7hg_8WvMyfJbDNoNU1CQTZWX2c/