C# XAML自定义GridViewColumn数据
我正在尝试创建一个应用程序,它显示一个“角色”列表,属性包括睡眠、饥饿、无聊和健康。我想显示当前角色及其状态(状态取决于哪个值最大(睡眠、饥饿和无聊))。由于status不是character类中的属性,因此我无法像处理name和health那样执行此操作:C# XAML自定义GridViewColumn数据,c#,wpf,xaml,C#,Wpf,Xaml,我正在尝试创建一个应用程序,它显示一个“角色”列表,属性包括睡眠、饥饿、无聊和健康。我想显示当前角色及其状态(状态取决于哪个值最大(睡眠、饥饿和无聊))。由于status不是character类中的属性,因此我无法像处理name和health那样执行此操作: <ListView x:Name="TamagochiList" Margin="10,34,10,118" ItemsSource="{Binding TamagochiList}"> <Lis
<ListView x:Name="TamagochiList" Margin="10,34,10,118" ItemsSource="{Binding TamagochiList}">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="100" DisplayMemberBinding="{Binding Path=Name}" />
<GridViewColumn Header="Health" Width="200" DisplayMemberBinding="{Binding Path=Health}" />
</GridView>
</ListView.View>
</ListView>
我尽了最大努力找到它,但我不确定该选择哪个关键词 因为
Status
是数据本身的属性,而不仅仅是UI的工件,所以将计算移动到模型类中的属性中
public class Character
{
public string Name {get; set;}
public int Health {get; set;}
public int Boredom {get; set;}
public int Sleep {get; set;}
public int Hunger {get; set;}
public string Status
{
get
{
if(Boredom >= Hunger && Boredom >= Sleep)
{
return "Bored";
}
if(Hunger >= Boredom && t.Hunger >= Sleep)
{
return "Hungry";
}
if(Sleep >= Boredom && Sleep >= Hunger)
{
return "Sleepy";
}
return "Geen status";
}
}
然后通过
<GridViewColumn Header="Status" Width="200" DisplayMemberBinding="{Binding Path=Status}" />
由于
状态
是数据本身的属性,而不仅仅是UI的工件,因此将计算移动到模型类中的属性中
public class Character
{
public string Name {get; set;}
public int Health {get; set;}
public int Boredom {get; set;}
public int Sleep {get; set;}
public int Hunger {get; set;}
public string Status
{
get
{
if(Boredom >= Hunger && Boredom >= Sleep)
{
return "Bored";
}
if(Hunger >= Boredom && t.Hunger >= Sleep)
{
return "Hungry";
}
if(Sleep >= Boredom && Sleep >= Hunger)
{
return "Sleepy";
}
return "Geen status";
}
}
然后通过
<GridViewColumn Header="Status" Width="200" DisplayMemberBinding="{Binding Path=Status}" />
我的回答基于您可以修改角色的假设。如果不是这样的话,也许可以编辑你的问题来澄清这一点。问题不清楚。我的回答是基于你能够修改你的角色
类的假设。如果不是这样的话,也许可以编辑你的问题来澄清这一点。不清楚的问题。