【发布时间】:2015-03-14 11:41:52
【问题描述】:
我有一个列表视图,它现在显示电力、水和热的消耗和生产。但我需要显示这些不同值的单位。 我目前正在尝试使用带有 unicode 的 char 变量,该变量已绑定到显示单位的 gridviewcolumn,但它不会显示单位符号。
switch (type)
{
case "water": unit = '\u33A5'; break;
case "electricity": unit = '\u33BE'; break;
case "heat": unit = '\u33BF'; break;
}
我的绑定看起来像这样:
<ListView x:Name="lvSearch" ItemsSource="{Binding Source=RegistrationWithKeyNumbers}" Visibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Hidden">
<ListView.View>
<GridView AllowsColumnReorder="True">
<GridViewColumn DisplayMemberBinding="{Binding Path=Name}" Header="Name" Width="125" />
<GridViewColumn x:Name="gvcPeriode" DisplayMemberBinding="{Binding Path=Consumption}" Width="150"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=Unit}" Header="Enhed" Width="40"/>
</GridView>
</ListView.View>
</ListView>
我现在得到的只是正方形。
编辑: 我班级中的整个单元属性如下所示:
protected char unit;
public char Unit
{
get { return this.unit; }
set
{
if (this.unit != value)
{
this.unit = value;
this.OnPropertyChanged("Unit");
}
}
}
【问题讨论】:
-
请显示完整的
Unit属性的代码,而不仅仅是一些随机的代码。 -
我猜你正在设置
unit在绑定发生之后,由于没有通知,因此更改不会反映在视图中。 (假设你switch代码是你设置unit的方式) -
在我将一个新的 RegistrationWithKeyNumbers 添加到我绑定的列表之前使用切换代码。但也许你知道第一个答案中的评论有什么问题?