显然我做错了,因为之前我已经以这种方式使用过这种控制。
我的文字没有显示在我的列表视图中。我可以双击该项目并获取其值,但我看不到它。你会认为这将是一个简单的样式设置,也许它已经在我的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;
}
答案 0 :(得分:2)
字段不是有效的binding source
您可以绑定到任何公共语言运行时(CLR)对象的公共属性,子属性以及索引器。
因此您需要将字段转换为属性
public class JobTicker
{
public string CustomerRef { get; set; }
public string JobRef { get; set; }
public string CustomerName { get; set; }
}