C# XAML自定义GridViewColumn数据

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

我正在尝试创建一个应用程序,它显示一个“角色”列表,属性包括睡眠、饥饿、无聊和健康。我想显示当前角色及其状态(状态取决于哪个值最大(睡眠、饥饿和无聊))。由于status不是character类中的属性,因此我无法像处理name和health那样执行此操作:

 <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}" />


我的回答基于您可以修改
角色的假设。如果不是这样的话,也许可以编辑你的问题来澄清这一点。问题不清楚。我的回答是基于你能够修改你的
角色
类的假设。如果不是这样的话,也许可以编辑你的问题来澄清这一点。不清楚的问题。