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
WPF的ComboBox繫結[個人學習筆記](不成熟)
第一部分參考文章:https://www.cnblogs.com/fdyang/p/3459309.html1. 在UI(Xaml) 裡面直接繫結資料.(不實用)【可執行】<Window x:Class="WpfApplication1.MainWindow"
WPF Combobox繫結List
在WPF中若需要繫結List<string>物件到ItemsSource屬性,具體操作步驟: 1 生成水果類 Fruits.cs namespace WpfApp1 { public class Fruits { public Frui
winfrom 窗體控制元件實現二級聯動 ComboBox繫結資料來源時觸發SelectedIndexChanged事件的處理辦法
ComboBox繫結資料來源時觸發SelectedIndexChanged事件的處理辦法 事件,而這個時候使用者並沒有選擇內容,其SelectedValue也不是對應欄位的值。那麼時寫在SelectedIndexChanged中的處理程式碼就會因為SelectedValue的內容不正確引發異常。一般網上找到
wpf combobox繫結dictionary
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
【WPF】WPF通過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