簡體   English   中英

如何從列表字符創建DataGrid矩陣?

[英]How to create DataGrid Matrix from List Chars?

我在TextBox顯示帶charsList ,但間距不統一。

ABCDE
FGHIJ
KLMNO
PQRST
UVWXY


如何將其綁定到WPF DataGrid ,使其顯示為統一的5x5矩陣?

還是有其他方法可以使其統一?

A B C D E  
F G H I J  
K L M N O  
P Q R S T  
U V W X Y

C#

public char A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y;

public List<char> myList = new List<char>()
{
    A, B, C, D, E,  
    F, G, H, I, J,  
    K, L, M, N, O,  
    P, Q, R, S, T,  
    U, V, W, X, Y
}

public ObservableCollection<char> myCollection = new ObservableCollection<char>(myList);

XAML

<DataGrid x:Name="dataGrid" 
          HorizontalAlignment="Left" 
          Height="299" 
          Margin="191,399,0,0" 
          VerticalAlignment="Top" 
          Width="360"/>

除了可以使用等寬字體外,例如

<TextBlock FontFamily="Lucida Console">
    <Run>ABCDE</Run>
    <LineBreak/>
    <Run>FGHIJ</Run>
    <LineBreak/>
    <Run>KLMNO</Run>
    <LineBreak/>
    <Run>PQRST</Run>
    <LineBreak/>
    <Run>UVWXY</Run>
</TextBlock>

您可以將ItemsControl與UniformGrid一起使用:

<ItemsControl ItemsSource="ABCDEFGHIJKLMNOPQRSTUVWXY">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Columns="5"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" TextAlignment="Center"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

盡管XAML設計人員抱怨ItemsSource屬性,但是它可以工作,因為字符串是IEnumerable,並且文本綁定自動將char轉換為string

您當然也可以在后面的代碼中設置ItemsSource:

itemsControl.ItemsSource = new List<string>()
{
    "A", "B", "C", "D", "E",
    "F", "G", "H", "I", "J",
    "K", "L", "M", "N", "O",
    "P", "Q", "R", "S", "T",
    "U", "V", "W", "X", "Y"
};

要么

itemsControl.ItemsSource = new List<char>()
{
    'A', 'B', 'C', 'D', 'E',
    'F', 'G', 'H', 'I', 'J',
    'K', 'L', 'M', 'N', 'O',
    'P', 'Q', 'R', 'S', 'T',
    'U', 'V', 'W', 'X', 'Y'
};

或當然

itemsControl.ItemsSource = "ABCDEFGHIJKLMNOPQRSTUVWXY";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM