c#
  • wpf
  • xaml
  • unicode
  • 2015-01-15 112 views 0 likes 
    0

    我有一個列表視圖,它顯示了電力,水和熱的消耗和生產。但我需要顯示這些不同值的單位。 我目前正在嘗試使用一個字符變量與unicode,我綁定到顯示單位,但它不會顯示單位符號的gridviewcolumn。將unicode綁定到gridview列

    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> 
    

    我所得到的,現在僅僅是正方形。

    編輯: 在我的班級我的整個單位房產看起來是這樣的:

    protected char unit; 
    
         public char Unit 
         { 
          get { return this.unit; } 
          set 
          { 
           if (this.unit != value) 
           { 
            this.unit = value; 
            this.OnPropertyChanged("Unit"); 
           } 
          } 
         } 
    
    +0

    請顯示完整'單位'屬性的代碼,而不僅僅是一些隨機代碼。 –

    +0

    希望編輯有幫助 –

    +0

    我的猜測是你在綁定發生後設置'unit' *,並且因爲沒有通知,所以這個改變並沒有反映在視圖中。 (假設你開關代碼是你設置單元的方式) –

    回答

    0

    您是否使用不支持的Unicode字符的字體?

    +0

    我正在使用標準字體,我不知道是否支持? –

    +0

    我只是用一個文本框,它具有相同的字體,它的工作 –

    +0

    你確定綁定正在更新? switch語句中的'unit'是小寫字母,這意味着OnPropertyChanged()不會被觸發。另外,即使其他東西在某種程度上觸發了OnPropertyChanged(),也有可能'RegistrationWithKeyNumbers'不會冒充通知,使得ListView永遠不會更新。 – savetruman

    相關問題