绑定到 ListView 中的 TextBlock

Binding to TextBlock in ListView

我不知道是我对绑定的理解很差还是我没有看到问题,但我希望有人能在这里帮助我。我有一个带有图像模板的 ListView 和一个 TextBlock,我需要将 TextBlock 绑定到 ListViewItemsSource。然而,当我 运行 时,我什么也没有显示,我什至没有看到我设置的 image

XAML:

<UserControl.Resources>
    <FontFamily x:Key="FontFamily">MS Reference Sans Serif</FontFamily>        
</UserControl.Resources>

<Grid>
    <ListView BorderThickness="0" ItemsSource="{Binding Facies}">
        <ListView.ItemTemplate>
            <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <Image Source="../Images/Shale.png"/>
                <TextBlock Text="{Binding FaciesName}" Width="75" Margin="5"/>
            </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</Grid>

C#:

public partial class FaciesControl : UserControl
{

    public FaciesControl()
    {
        InitializeComponent();
    }

    public List<string> Facies {get; set;}

    public void Bind(string[] data)
    {
        Facies = new List<string>();
        Facies.AddRange(data);
    }
}

首先像这样设置DataContext

public FaciesControl()
{
    InitializeComponent();
    string[] str = { "Name1", "Name2", "Name3" };
    Bind(str); // Make sure you have called the Bind method
    DataContext = Facies;
}

第二次像这样更改您的 XAML:

<ListView BorderThickness="0" ItemsSource="{Binding}">
 ....
 ....
<TextBlock Text="{Binding}" Width="75" Margin="5"/>