我正在嘗試學習WPF和MVVM風格的做事。ComboBox打印對象類型
我有一個簡單的練習應用程序,我想在組合框中顯示代碼。
我的代碼
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace SteamCodes
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private ObservableCollection<Codes> codes;
public MainWindow()
{
InitializeComponent();
codes = new ObservableCollection<Codes>()
{
new Codes() {CodeID = "1", Code="CODETEXT"}
};
steamCode.ItemsSource = codes.ToString();
}
}
public class Codes
{
public string CodeID { get; set; }
public string Code { get; set; }
}
}
我的XAML
<Window x:Class="SteamCodes.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:SteamCodes"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ComboBox x:Name="steamCode" ItemsSource="{Binding Source = Codes}" HorizontalAlignment="Left" Height="43" Margin="122,37,0,0" VerticalAlignment="Top" Width="259"/>
</Grid>
</Window>
目前我的組合框是通過拉動作爲ComboBox中的每個選項是從線「System.Collections.Objectmodel信。 ObservableCollection`1 [SteamCodes.Codes]'
這些字母的每個人都是組合框中的不同下拉選項。
任何想法,我錯了。
'ItemsSource'應綁定到一個數據項目的收集。您正在分配(不綁定)字符串,這是一組字符。您在XAML中的綁定表達式不起作用。請閱讀此處的基礎知識:[數據綁定概述](https://msdn.microsoft.com/zh-cn/library/ms752347(v = vs.110).aspx)。 – Clemens
好的,謝謝,我現在就來看看這個鏈接。 –
它還應該做什麼?您將整個集合放在一個字符串中。您必須編碼的圖片,如果該項目的來源設置爲兩個值,組合框應該如何決定顯示哪個組合框? - > CodeID和代碼 –