第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在 C# WPF 中擁有多列下拉框?

如何在 C# WPF 中擁有多列下拉框?

C#
至尊寶的傳說 2023-08-27 10:18:49
我正在嘗試在 c# wpf 中創(chuàng)建一個(gè)多列組合框,如下所示。有任何想法嗎?當(dāng)選擇一行時(shí),僅顯示州代碼,但所有詳細(xì)信息都可以顯示在下拉選擇中。
查看完整描述

1 回答

?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊

你可以發(fā)揮一點(diǎn)創(chuàng)意來解決這個(gè)問題。假設(shè)您有一個(gè)寬度僅為 60 像素的組合框。因此,您希望組合項(xiàng)顯示為完整的州名稱和縮寫,例如CA - California,但如果選擇,您只需要縮寫。CA。


我聲明一個(gè)類來代表一個(gè)狀態(tài),如下所示:


public class State

{

    public string ShortName { get; set; }

    public string FullName { get; set; }

    private string _displayName;

    public string DisplayName

    {

        set

        {

            _displayName = value;

        }

        get

        {

            if (string.IsNullOrEmpty(_displayName))

                return string.Format("{0} - {1}", ShortName, FullName);

            else

                return _displayName;

        }

    }

}

技巧是您用來DisplayName在組合框中顯示項(xiàng)目。然后,在getof中DisplayName,如果它已經(jīng)有值,則返回它,如果沒有,則連接狀態(tài)的短名稱和全名稱。


然后,當(dāng)您進(jìn)行數(shù)據(jù)綁定時(shí),您將擁有一個(gè)狀態(tài)列表以及SelectedState,并且在該屬性的設(shè)置器中,您將DisplayName設(shè)為ShortName。


所以,我的XAML:


<Grid>

    <ComboBox ItemsSource="{Binding States}"

              SelectedValue="{Binding SelectedState}"

              DisplayMemberPath="DisplayName"

              Name="CmbStates" Width="60" Height="32"/>

</Grid>

然后,在我的代碼中:


public partial class MainWindow : Window, INotifyPropertyChanged

{

    public event PropertyChangedEventHandler PropertyChanged;


    protected void OnPropertyChanged(string propertyName)

    {

        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

    }


    private List<State> _states;

    public List<State> States

    {

        get { return _states; }

        set

        {

            _states = value;

            OnPropertyChanged("States");

        }

    }


    private State _selectedState;

    public State SelectedState

    {

        get { return _selectedState; }

        set

        {

            _selectedState = value;

            SelectedState.DisplayName = SelectedState.ShortName;

            OnPropertyChanged("SelectedState");

        }

    }


    public MainWindow()

    {

        InitializeComponent();

        States = new List<State>

        {

            new State() { FullName = "California", ShortName = "CA" },

            new State() { FullName = "New York", ShortName = "NY" },

            new State() { FullName = "Oregon", ShortName = "OR" }

        };

        DataContext = this;

    }

}

現(xiàn)在列表中應(yīng)該有完整的串聯(lián)名稱:

https://img1.sycdn.imooc.com//64eab2ed000129e701280105.jpg

但只有選擇時(shí)的縮寫:

https://img1.sycdn.imooc.com//64eab2f50001748e01060079.jpg


查看完整回答
反對(duì) 回復(fù) 2023-08-27
  • 1 回答
  • 0 關(guān)注
  • 229 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)