我的列表视图中未显示的文字

时间:2016-03-20 09:52:16

标签: c# wpf xaml listview data-binding

显然我做错了,因为之前我已经以这种方式使用过这种控制。

我的文字没有显示在我的列表视图中。我可以双击该项目并获取其值,但我看不到它。你会认为这将是一个简单的样式设置,也许它已经在我的appp.xaml的其他地方设置,但事实并非如此。

这是我的标记:

<UserControl.Resources>
    <ResourceDictionary>
        <Style x:Key="myHeaderStyle" TargetType="{x:Type GridViewColumnHeader}">
            <Setter Property="Visibility" Value="Collapsed" />
        </Style>
        <DataTemplate x:Key="value1Template">
            <TextBlock TextAlignment="Left" Text="{Binding Path=CustomerName}"/>
        </DataTemplate>
    </ResourceDictionary>
</UserControl.Resources>


<ListView x:Name="lstActiveJobs" Grid.Row="1" Grid.Column="0" Foreground="Black" MouseDoubleClick="lstActiveJobs_MouseDoubleClick" >
    <ListView.ContextMenu>
        <ContextMenu>
            <MenuItem Header="View"
                        Click="cmView"     
                        Command="{Binding RemoveItem}"
                        CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=ContextMenu}, 
                       Path=PlacementTarget.SelectedItem}" />                   
        </ContextMenu>
    </ListView.ContextMenu>
    <ListView.View>
        <GridView AllowsColumnReorder="False" ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}">
            <GridViewColumn Header="CustomerName"  Width="100"  CellTemplate="{StaticResource value1Template}"  />
        </GridView>
    </ListView.View>
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"  />
        </Style>
    </ListView.ItemContainerStyle>
</ListView>

我的代码的一部分:

lstActiveJobs.ItemsSource = ActiveState.JobsActive;

public static ObservableCollection<JobTicker> JobsActive = new ObservableCollection<JobTicker>();

要注意的是:

ActiveState.JobsActive does have a record/item

我的模特:

public  class JobTicker
{
    public string CustomerRef;
    public string JobRef;
    public string CustomerName;
}

1 个答案:

答案 0 :(得分:2)

字段不是有效的binding source

  

您可以绑定到任何公共语言运行时(CLR)对象的公共属性,子属性以及索引器。

因此您需要将字段转换为属性

public class JobTicker
{
    public string CustomerRef { get; set; }
    public string JobRef { get; set; }
    public string CustomerName { get; set; }
}