2012-06-27 23 views
2

我將值綁定到列表框,但字符串未以正確的格式顯示。如何驗證列表框中的字符串?

前我的琴絃一樣

abc    10 
abcd    20 
asdfas   30 

我做了固定長度是30使用填充像

abc  10 
abcd  20 
asdfas   30 

str1.PadRight(30) + str2.PadRight(2) 

然後還我得到的值第一個字符串請建議如何在字符串

之間放置相同的空格10
+3

一個問題是,你可能不會使用固定寬度的字體。 –

+0

嘗試將ListBox的Font屬性設置爲FixedSys。 – Steve

+0

是的,請使用固定寬度的字體或使用多欄列表視圖或網格控件。 –

回答

2

Windows用戶界面通常使用可變寬度的字體,因此您不能只用空格填充給定列以使文本排列。

您需要將ListBox設置爲使用等寬字體(例如Courier或Lucida控制檯),使用支持列的ListView(或類似的),或實現自繪項目,以便控制項目被顯示出來,將文本拆分成列來繪製它們。

0

Windows窗體ListBox支持多列。在constructor的文檔中有一個例子。

雖然這可能不適用於數據綁定。在這種情況下,您可能需要使用ListView

0

我想創建一個視圖模型包裹文本和號碼:

class MyViewModel 
{ 
    public string Text { get; set; } 
    public int Number { get; set; } 
} 

然後給ListBoxItemTemplate,做了佈局:

<ListBox> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <DockPanel> 
       <TextBlock DockPanel.Dock="Left" 
          Text="{Binding Text}"/> 
       <TextBlock DockPanel.Dock="Right" 
          Text="{Binding Number}"/> 
      </DockPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox>