* UIListBox:修改对象绑定的显示问题
This commit is contained in:
parent
fb20fb38ce
commit
8aeca1b7c3
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -628,11 +628,34 @@ namespace Sunny.UI
|
|||||||
Color foreColor = isSelected ? ItemSelectForeColor : ForeColor;
|
Color foreColor = isSelected ? ItemSelectForeColor : ForeColor;
|
||||||
|
|
||||||
Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width - 1, e.Bounds.Height - 1);
|
Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, e.Bounds.Width - 1, e.Bounds.Height - 1);
|
||||||
|
string showText = string.Empty;
|
||||||
|
if (DisplayMember.IsNullOrEmpty())
|
||||||
|
{
|
||||||
|
showText = Items[e.Index].ToString();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var list = Items[e.Index].GetType().GetNeedProperties();
|
||||||
|
foreach (var info in list)
|
||||||
|
{
|
||||||
|
if (info.Name == DisplayMember)
|
||||||
|
{
|
||||||
|
object defaultobj = info.GetValue(Items[e.Index], null);
|
||||||
|
showText = defaultobj.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (showText.IsNullOrEmpty())
|
||||||
|
{
|
||||||
|
showText = Items[e.Index].ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!otherState)
|
if (!otherState)
|
||||||
{
|
{
|
||||||
e.Graphics.FillRectangle(BackColor, e.Bounds);
|
e.Graphics.FillRectangle(BackColor, e.Bounds);
|
||||||
e.Graphics.FillRoundRectangle(backColor, rect, 5);
|
e.Graphics.FillRoundRectangle(backColor, rect, 5);
|
||||||
e.Graphics.DrawString(Items[e.Index].ToString(), e.Font, foreColor, e.Bounds, sStringFormat);
|
e.Graphics.DrawString(showText, e.Font, foreColor, e.Bounds, sStringFormat);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -650,7 +673,7 @@ namespace Sunny.UI
|
|||||||
|
|
||||||
e.Graphics.FillRectangle(BackColor, e.Bounds);
|
e.Graphics.FillRectangle(BackColor, e.Bounds);
|
||||||
e.Graphics.FillRoundRectangle(backColor, rect, 5);
|
e.Graphics.FillRoundRectangle(backColor, rect, 5);
|
||||||
e.Graphics.DrawString(Items[e.Index].ToString(), e.Font, foreColor, e.Bounds, sStringFormat);
|
e.Graphics.DrawString(showText, e.Font, foreColor, e.Bounds, sStringFormat);
|
||||||
}
|
}
|
||||||
|
|
||||||
AfterDrawItem?.Invoke(this, Items, e);
|
AfterDrawItem?.Invoke(this, Items, e);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user