如何解决网格中下拉列表中的列表未返回值
enum SendDays
{
Maandag = 1,Dinsdag,Vandaag= 99
}
还有一个班级
public struct DayListModel
{
public int Id;
public string DayName;
}
我用这样的日子来填充列表
private void Filldays()
{
foreach(int i in Enum.getValues(typeof(SendDays)))
{
DayListModel day =new DaylistModel()
{
Id = i,Dayname = Enum.GetName(typeof(SendDays),i)
};
DayList.Add(day);
}
当我使用它时,它在radcomboBox的telerik RadGridView中 喜欢
<telerik:RadComboBox ItemsSource="{Bindning DayList}" displayMemberPath="DayName" SelectedValue="{Bindning DefaultSendDay}" SelectedValuePath="Id"/>
每当我更改所选项目时,该项目都不会传递。
有什么建议吗?
耶罗恩
解决方法
确保类型匹配,即,如果您的DefaultSendDay
源属性是byte
,则Id
中的DayListModel
也应该是byte
如果仍然无法使用,请尝试将字段转换为属性,并将结构转换为类:
public class DayListModel
{
public byte Id { get; set; }
public string DayName { get; set; }
}
,
这是我的建议,以及如何使它起作用:
-
就像@ mm8一样,您应该将
ModelA objectA = new ModelA(A - B,C - D);
设为类而不是结构,然后将fields变成properties。如果不使用属性,则private int _x; public int X { get { return _x; } set { X = value <= 0 ? 0 : value; } } private int _y; public int Y { get { return _y; } set { Y = value > 0 ? value : int.MinValue; } }
不起作用。有些东西不适用于结构(例如using==
to compare),因此在这种情况下,我将选择一个类。 -
您的对象在视图模型中是否可观察?我不知道telerik,但是您应该调用某种
DayListModel
方法,以便可以更新UI。如果您使用MVVM light之类的框架,则它具有DisplayMemberPath
和PropertyChanged
方法。
这是一个可行的示例:
ObservableObject
RaisePropertyChanged
MainWindowVM.cs
using GalaSoft.MvvmLight;
using System;
using System.Collections.Generic;
namespace WpfApp1
{
public class MainWindowVM : ObservableObject
{
private List<DayListModel> _DayList;
public List<DayListModel> DayList
{
get { return _DayList; }
set
{
if (value != _DayList)
{
_DayList = value;
RaisePropertyChanged();
}
}
}
private DayListModel _DefaultSendDay;
public DayListModel DefaultSendDay
{
get { return _DefaultSendDay; }
set
{
if (value != _DefaultSendDay)
{
_DefaultSendDay = value;
RaisePropertyChanged();
}
}
}
public MainWindowVM()
{
DayList = new List<DayListModel>();
foreach (int i in Enum.GetValues(typeof(SendDays)))
{
DayListModel day = new DayListModel()
{
Id = i,DayName = Enum.GetName(typeof(SendDays),i)
};
DayList.Add(day);
}
DayList = new List<DayListModel>(DayList);
}
}
public enum SendDays
{
Maandag = 1,Dinsdag,Vandaag = 99
}
public class DayListModel
{
public int Id { get; set; }
public string DayName { get; set; }
}
}
屏幕截图:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。