DataGrid绑定列表字符串显示长度,但不显示字符串

尼克希尔

我的视图模型中有一个字符串列表,该字符串列表在运行时填充有Events.csv等文件名。我将此列表作为项源绑定到DataGrid,但它显示的是字符串的长度,而不是字符串的长度。请帮忙。

不用担心INotifyPropertyChanged和DATACONTEXT。将DataContext正确设置为DetailedRunInformationViewModel,并且此视图中的其他数据正确填充。

调试时,请参阅所附的屏幕截图。 调试字符串列表

ViewModel:

public class DetailedRunInformationViewModel : RunRelatedErrors
    {
public List<string> AllFilesGeneratedList { get; set; }
public DetailedRunInformationViewModel(int sessionID, RunData runData)
        {
          DisplayAllFiles();
        }
public void DisplayAllFiles()
        {
            if (_runData != null)
            {
                if (_runData.CSVDataInDataTableFormatForEachFile != null && _runData.CSVDataInDataTableFormatForEachFile.Count > 0)
                {
                    if (AllFilesGeneratedList == null)
                    {
                        AllFilesGeneratedList = new List<string>();
                    }
                    foreach(var key in _runData.CSVDataInDataTableFormatForEachFile.Keys)
                    {
                        AllFilesGeneratedList.Add(key);
                    }
                }
            }
        }
    }

在XAML中

<DataGrid
                    x:Name="AllRunFiles"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Top"
                    Margin="{StaticResource AllControlsMargin}"
                    ItemsSource="{Binding AllFilesGeneratedList}"
                    AutoGenerateColumns="True">
                    <i:Interaction.Triggers>
                        <i:EventTrigger
                            EventName="SelectionChanged">
                            <i:InvokeCommandAction
                                Command="{Binding OpenSelectedFile}"
                                CommandParameter="{Binding ElementName=AllRunFiles,Path=SelectedValue}"></i:InvokeCommandAction>
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                    <DataGrid.ItemTemplate>
                        <DataTemplate>
                            <TextBlock
                                Text="{Binding}"
                                Style="{StaticResource TextBlockHyperlinkStyle}"></TextBlock>
                        </DataTemplate>
                    </DataGrid.ItemTemplate>

                </DataGrid>
萨克

DataGrid需要有一个Columns定义,并进行定义,AutoGenerateColumns="False"以便您可以更好地控制显示方式。

<DataGrid>
    <i:Interaction.Triggers>
    ...
    </i:Interaction.Triggers>
    <DataGrid.Columns>
        <DataGridTemplateColumn Header="File Name">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding}"></TextBlock>
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

另外,我也没有检查,但是我认为您可能需要将更TextBlock Text="{Binding}"改为TextBlock Text="{Binding Path=.}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章