[英]WPF Combobox with SelectedValue is behaving weird
我有一個包含特定年份的ComboBox
。 但是,我在選擇該項目時遇到了麻煩。
XAML
<ComboBox MaxDropDownHeight="90" Height="10" Width="80" ItemsSource="{Binding accy}" DisplayMemberPath="DisplayMember" SelectedValuePath="ValuePath" SelectedValue="{Binding Accy_selected}"/>
MainWindow.cs
public MainWindow()
{
InitializeComponent();
this.DataContext = new Test();}
Test.cs
class Test
{
public ObservableCollection<ComboYear> accy { get; set; }
private string _accy_selected = "";
public Test()
{
int min = 1940;
int max = 2040;
accy = new ObservableCollection<ComboYear>();
for (int i = min; i < max; i++)
{
accy.Add(new ComboYear { DisplayMember = Convert.ToString(i), ValuePath = Convert.ToString(i) });
}
Accy_selected = Convert.ToString(max);
}
public class ComboYear
{
public string DisplayMember { get; set; }
public string ValuePath { get; set; }
}
public string Accy_selected
{
get { return _accy_selected; }
set
{
if (value != _accy_selected)
{
_accy_selected = value;
NotifyPropertyChanged("Accy_selected");
}
}
}
ComboBox
被填充,但未選擇任何項目。 奇怪的是,如果我改變這行
Accy_selected = Convert.ToString(max);
為此,它正在工作。 它在ComboBox
每年都有效。 我太傻了,無法將int
轉換為string
嗎?
Accy_selected = "2039";
我不知道如何解決它
max
( 2040
)不包含在ComboBox
,對嗎? 只要計數器變量i
小於 max
可以迭代:
for (int i = min; i < max; i++)
如果將條件更改為i <= max
,則在設置Accy_selected
屬性時應包括並選擇值“ 2040”:
Accy_selected = Convert.ToString(max);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.