C# 绑定列表<;结构>;在xaml中

C# 绑定列表<;结构>;在xaml中,c#,wpf,xaml,data-binding,C#,Wpf,Xaml,Data Binding,我有一个构造器: public partial class MachinesWorkingTime : Window { public List<MachineWorkingTime> valuesMachine { get; set;} public MachinesWorkingTime(List<MachineWorkingTime> values) { InitializeComponen

我有一个构造器:

 public partial class MachinesWorkingTime : Window
 {
        public List<MachineWorkingTime> valuesMachine { get; set;}
        public MachinesWorkingTime(List<MachineWorkingTime> values)
        {
            InitializeComponent();
            valuesMachine = values;
        }
 }
公共部分类机器工作时间:窗口
{
public List valuesMachine{get;set;}
公用机器工作时间(列表值)
{
初始化组件();
valuesMachine=值;
}
}
MachineWorkingTime结构:

public struct MachineWorkingTime
{
    public string machineName { get; set; }
    public List<string> posA;
}
公共结构机器工作时间
{
公共字符串machineName{get;set;}
公共名单posA;
}
这是我的XAML:

<Window x:Class="WorkingTimes.MachinesWorkingTime"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WorkingTimes"
    mc:Ignorable="d"
    Title="MachinesWorkingTime" Height="178.243" Width="502.092">
<Grid Background="LightGray" VerticalAlignment="Stretch">
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="30"/>
    </Grid.RowDefinitions>
    <DataGrid ItemsSource="{Binding valuesMachine}">
        <DataGrid.Columns>
            <DataGridTextColumn MinWidth="50" Width="50" Binding="{Binding machineName}" />
        </DataGrid.Columns>
    </DataGrid>
</Grid>

但我不知道为什么我在数据网格中看不到任何东西。
感谢大家的支持,您需要将窗口的DataContext设置为视图模型类。在本例中,窗口类用作视图模型。试试这个:

public MachinesWorkingTime(List<MachineWorkingTime> values)
{        
    valuesMachine = values;
    DataContext = this; //Set viewmodel of window to this
    InitializeComponent();
}
公用机器工作时间(列表值)
{        
valuesMachine=值;
DataContext=this;//将窗口的viewmodel设置为this
初始化组件();
}
我建议将视图模型从窗口类中拆分

绑定时也不要使用结构来保存数据,正如Midfielder4所评论的:

public class MachineWorkingTime
{
    public string machineName { get; set; }
    public List<string> posA;
}
公共类机器工作时间
{
公共字符串machineName{get;set;}
公共名单posA;
}

输出控制台中是否有任何绑定错误,是否设置了窗口的datacontext?@Chrille无错误。不,我试试看。谢谢除了回答中提到的内容外,不要将struct(即值类型)用作集合元素类型。这很快就会给你带来意想不到的麻烦。