簡體   English   中英

將 WPF Combobox 中的 SelectedItem 綁定到屬性

[英]Binding a SelectedItem in WPF Combobox to property

我正在嘗試將一個屬性綁定到 WPF 中的組合框,這樣當我選擇組合框的其中一項時,我的組合框的 SelectedValue 將存儲到一個名為 eventNumber 的屬性中,它只是一個數字。 我不確定為什么它不起作用。 目前我正在導入帶有事件的 SQL 表的值,有兩個字段,Name 和 eventNumber。 我使用 Rest Sharp 調用此表,如后面的代碼所示,並將 json 反序列化為列表,然后使用 foreach 循環將其元素傳遞給 System.Collections.ObjectModel.ObservableCollection 以進行綁定。 這工作正常,我的 ComboBox 在選擇時顯示事件的名稱。 但是,我想將我的組合框的 SelectedItem 綁定到集合的 eventNumber,但我不太確定如何綁定。

XAML 代碼:

<Grid>
    <StackPanel>
            <ComboBox x:Name="ComboEvents" IsEditable="False" Height="20" Width="500" Margin="30,0,0,0" ItemsSource="{Binding listEvents}" SelectedItem="eventNumber" DisplayMemberPath="Name"/>
    </StackPanel>
</Grid>

C#代碼:

public partial class MainWindow : Window
{
    public System.Collections.ObjectModel.ObservableCollection<Events> listEvents { get; }
    public MainWindow()
    {
        InitializeComponent();

        //calls the names of the events
        var client1 = new RestClient("http://ip+port");
        var request1 = new RestRequest("myMethod that gets all the events from a sql table", Method.Get);
        var Response1 = client1.Execute(request1);
        
        if (Response1.StatusCode == System.Net.HttpStatusCode.OK)
        {
            var listEvents = JsonConvert.DeserializeObject<List<Events>>(Response1.Content);
            listEvents = new System.Collections.ObjectModel.ObservableCollection<Event>();
            foreach (Event event in listEvents)
            {
                listEvents.Add(new Events { Name = event.Name, eventNumber= event.eventNumber}); //adds each event to listEvents collection
            }
        }

        DataContext = this;
    }
    

    public class Event
    {
        public string eventNumber{ get; set; }
        public string Name { get; set; }
    }

如果要將SelectedItem綁定到eventNumber屬性,

你應該做SelectedItem="{Binding eventNumber}"

當然,在將屬性eventNumber放入窗口的 DataContext 之后

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM