1. 程式人生 > >WPF實現ComboBox繫結刪除按鈕

WPF實現ComboBox繫結刪除按鈕

ComboBox繫結刪除按鈕,可刪除下拉框中儲存的歷史記錄,效果如下:
這裡寫圖片描述
在ComboBox的項模板->資料模板中佈局一個文字框一個按鈕,文字框用於顯示下拉內容,按鈕用於實現刪除功能。

XAML部分:

<ComboBox x:FieldModifier="public" x:Name="comboBox" HorizontalAlignment="Left" Grid.Row="1" VerticalAlignment="Top" Width="200" Height="30" IsEditable="True" BorderBrush="{DynamicResource {x:Static SystemColors.AppWorkspaceBrushKey}}"
Canvas.Left="200" Canvas.Top="13.163" FontSize="14.667" VerticalContentAlignment="Center" TextSearch.TextPath="Name" TextOptions.TextFormattingMode="Display" TabIndex="0">
<ComboBox.ItemTemplate> <DataTemplate> <Grid Width="190" Height="30"> <Grid.ColumnDefinitions
>
<ColumnDefinition Width="170"></ColumnDefinition> <ColumnDefinition Width="20"></ColumnDefinition> </Grid.ColumnDefinitions> <TextBlock Grid.Column="0" VerticalAlignment="Center" Text="{Binding Path=Name}"
/>
<Button Grid.Column="1" VerticalAlignment="Center" VerticalContentAlignment="Center" Width="20" Height="20" Tag="{Binding Path=Name}" Style="{DynamicResource Style_Normal}" Click="DeleteButton_Click" Content="x" /> </Grid> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox>

繫結資料來源

comboBox.ItemsSource = userList

資料來源物件 userList 中的 user 具有 Name 屬性
因此,模板中的 Text=”{Binding Path=Name} 以及按鈕中的 Tag=”{Binding Path=Name}” 都將繫結 user 的 Name 屬性

在刪除按鈕點選事件中,可通過按鈕的Tag找到需要刪除的項,然後重新繫結即可重新整理

private void DeleteButton_Click(object sender, RoutedEventArgs e)
{
        List<User> userList = this.comboBox.ItemsSource as List<User>;
        Button closeButton = sender as Button;
        userList.RemoveAll(u => u.Name == closeButton.Tag.ToString());

        this.comboBox.ItemsSource = null;
        this.comboBox.ItemsSource = userList;
}

相關推薦

WPF實現ComboBox刪除按鈕

ComboBox繫結刪除按鈕,可刪除下拉框中儲存的歷史記錄,效果如下: 在ComboBox的項模板->資料模板中佈局一個文字框一個按鈕,文字框用於顯示下拉內容,按鈕用於實現刪除功能。 XAML部分: <ComboBox x:FieldM

WPFComboBox[個人學習筆記](不成熟)

第一部分參考文章:https://www.cnblogs.com/fdyang/p/3459309.html1.  在UI(Xaml) 裡面直接繫結資料.(不實用)【可執行】<Window x:Class="WpfApplication1.MainWindow"

WPF ComboboxList

在WPF中若需要繫結List<string>物件到ItemsSource屬性,具體操作步驟: 1 生成水果類 Fruits.cs namespace WpfApp1 { public class Fruits { public Frui

winfrom 窗體控制元件實現二級聯動 ComboBox資料來源時觸發SelectedIndexChanged事件的處理辦法

ComboBox繫結資料來源時觸發SelectedIndexChanged事件的處理辦法 事件,而這個時候使用者並沒有選擇內容,其SelectedValue也不是對應欄位的值。那麼時寫在SelectedIndexChanged中的處理程式碼就會因為SelectedValue的內容不正確引發異常。一般網上找到

wpf comboboxdictionary

1 Dictionary<int, string> or Dictionary<double, string> Dictionary<double, string> TimeOutDictionary = new Dictionary&l

WPF{ComboBox類物件, 下拉列顯示的值,與取到的值}

DisplayMemberPath 是用來顯示下拉列表的值 SelectedValuePath是用來取得選中項的值。ComboBox繫結類物件, 下拉列顯示的值,與取到的值 string.

WPF TreeView IsExpanded 不上的問題

最近專案上需要通過MVVM來控制TreeView,其中需要需要控制通過搜尋來定位某個節點,正常邏輯下,首先通過需要在樹上面找到該節點,然後選中該節點,並將該節點的父節點展開,這個時候需要通過MVVM來控制,需要繫結起來,只是一直沒有binding上,程式碼如下: MVVM示例程式碼: 1 usi

wpf 事件引數 到viewmdoel

public sealed class EventCommand : TriggerAction<DependencyObject> { public static readonly DependencyProperty CommandParameterProper

WPF 關於資料大量元素到同一個物件。

當在同一個物件上繫結大量元素時,當然XMAL也是同樣可以繫結,但會使得XMAL的程式碼量很多,每個繫結的元素都要依此的與控制元件屬性值繫結。為了解決或者改善這個問題。下面介紹這種通用的繫結方式。 1.先看下面的例子   //此處是繫結的資料的類,自己可以自定義此類 usin

WPF UserControl 的事件、屬性、附加屬性

原文: WPF UserControl 的繫結事件、屬性、附加屬性   WPF UserControl裡可供繫結的屬性 /// <summary> /// 重寫基類 Margin /// </summar

WPF雙向資料總結

1、指定繫結源 WPF雙向資料同步:目標屬性(UI)和源屬性(CS)資料同步。 實現雙向資料同步資料來源需要實現依賴屬性INotifyPropertyChanged介面,因為依賴屬性有垂直的內嵌變更通知機制。 INotifyPropertyChanged是用於實現介面通知。DependencyObjec

Vue 實現雙向的幾種方法

1. v-model 指令 <input v-model="text" /> 上例不過是一個語法糖,展開來是: <input :value="text" @input="e => text = e.target.value"

ComboBox資料庫

//宣告一個SQLconnection物件             SqlConnection sql = new SqlConnection(constr);           &n

面試問題:Vuejs如何實現雙向

最近出去面試,栽在這個問題上,提到vuejs,面試官一般會讓你說vuejs的特點,一般就要回答virtual dom tree, dom tree diff, 以及資料雙向繫結,然後面試官會追問你,vuejs是如何實現資料雙向繫結的,前面的問題算基礎的話,能答出這個就更上一個臺階,說明你的思考能力不停留在表層

Vue雙向原理,教你一步一步實現雙向

當今前端天下以 Angular、React、vue 三足鼎立的局面,你不選擇一個陣營基本上無法立足於前端,甚至是兩個或者三個陣營都要選擇,大勢所趨。 所以我們要時刻保持好奇心,擁抱變化,只有在不斷的變化中你才能利於不敗之地,保守只能等死。 最近在學習 Vue,一直以來對它的雙向繫結只能算了解並不深入,最近幾天

Object.defineProperty實現雙向原理

什麼是雙向繫結? 1.當一個物件(或變數)的屬性改變,那麼呼叫這個屬性的地方顯示也應該改變,模型到檢視(model => view) 2.當呼叫屬性的這個地方改變了這個屬性(通常是一個表單元素),那麼這個物件(或變數)的屬性也會改為最新的值 ,即檢視到模型(view

WPFWPF通過RelativeSource父控制元件的屬性

原文: 【WPF】WPF通過RelativeSource繫結父控制元件的屬性 1.後臺程式碼實現繫結父控制元件的屬性 RelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor); //設定為離自己控制元件最近的

vue nginx 代理實現域名

vue專案打包上線以後想要用nginx指向域名方法如下 server { li

JAVA實現通過郵箱找回密碼功能

1.輸入使用者名稱及驗證碼,驗證使用者名稱是否存在 (1).生成驗證碼工具類 package com.utils;     import java.awt.Color;     import java.awt.F

wpf學習-格式化資料

案例目的      案例是將產品的double型價格轉換為美元型表示 資料模型 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace