C# Xamarin表单图像未显示在listview中
我想显示一个C# Xamarin表单图像未显示在listview中,c#,android,image,xamarin,xamarin.forms,C#,Android,Image,Xamarin,Xamarin.forms,我想显示一个/\我的列表视图中的图标。不幸的是,它没有出现在任何地方 我100%肯定它在iOS和Android应用程序中都处于正确的位置。我已经仔细检查了它是否是Android资源(根据下面的屏幕截图) 用于初始化图像的代码:alarmIcon=new image{Source=“warning.png”} 初始化后,我将其放入AlarmPageItem对象中,作为图像属性。这将添加到listview中。 我已检查绑定是否与AlarmPageItem属性匹配。(文本确实会显示) 我不知道为什么
/\代码>我的列表视图中的图标。不幸的是,它没有出现在任何地方
我100%肯定它在iOS和Android应用程序中都处于正确的位置。我已经仔细检查了它是否是Android资源(根据下面的屏幕截图)
用于初始化图像的代码:alarmIcon=new image{Source=“warning.png”}代码>
初始化后,我将其放入AlarmPageItem对象中,作为图像属性。这将添加到listview中。
我已检查绑定是否与AlarmPageItem
属性匹配。(文本确实会显示)
我不知道为什么它不起作用
我试过的东西
检查图像和源声明的大小写
已检查生成操作并复制到输出目录
检查绑定匹配
尝试用楼宇电话代替xamarin live player
检查图像位置
代码:
public部分类报警页面:ContentPage
{
私有列表listViewItems;
私有图像报警图标;
公共警报页()
{
listViewItems=新列表();
alarmIcon=新图像{Source=“warning.png”};
大众主义者();
初始化组件();
listView.ItemsSource=listViewItems;
}
已映射的私有void(对象发送方,ItemTappedEventArgs e)
{
如果(e==null)return;//已设置为null,则不要“处理”事件
Debug.WriteLine(“点击:+e.Item”);
((ListView)sender).SelectedItem=null;//取消选择该行
}
私有void PopulateList()
{
添加(新的AlarmPageItem(){AlarmImage=alarmIcon,AlarmText=“前面太重”,DateTime=DateTime.Now.ToShortTimeString()});
}
}
您在XAML中绑定为图像的“源”,这是您在代码隐藏中创建的图像
对象
通过将AlarmImage
属性设置为ImageSource
或只是一个简单的字符串来更新AlarmPageItem
类
比如:
class AlarmPageItem
{
public string AlarmImage { get; set; }
public string AlarmText { get; set; }
//Just a suggestion: Change this property name for something different as it
//can create some confusion.
public DateTime DateTime { get; set; }
...
// Add any other properties your class might have.
}
更新上述内容后,只需在PopulateList
方法中更改代码以设置图像的名称
private void PopulateList()
{
listViewItems.Add(new AlarmPageItem() {AlarmImage = "warning.png", AlarmText = "The front is too heavy", DateTime = DateTime.Now.ToShortTimeString()});
}
希望这有帮助。-为什么不显示为ListView实现的全部代码?更容易找到问题所在。@apineda现在添加了代码:)如果您向图像发出高度请求,它会显示吗?
class AlarmPageItem
{
public string AlarmImage { get; set; }
public string AlarmText { get; set; }
//Just a suggestion: Change this property name for something different as it
//can create some confusion.
public DateTime DateTime { get; set; }
...
// Add any other properties your class might have.
}
private void PopulateList()
{
listViewItems.Add(new AlarmPageItem() {AlarmImage = "warning.png", AlarmText = "The front is too heavy", DateTime = DateTime.Now.ToShortTimeString()});
}