我有一个类,它有2个公共变量,一个字符串和一个自定义类的列表。
我已经设置了Binding,它对字符串很有用,但是我无法将其绑定到List。
背后的代码
public class RegKey
{
public string Name { get; set; }
public List<CEKeys> Key = new List<CEKeys>();
}
public class CEKeys
{
public string Path { get; set; }
public string KeyName { get; set; }
public string Value { get; set; }
public string Type { get; set; }
}
XAML
<DataGrid x:Name="dgRegKeys" Margin="0,0,0,40" ItemsSource="{Binding}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Foreground="Black" Width="60" Header="Name" Binding="{Binding Name, Mode=TwoWay}" IsReadOnly="True" />
<DataGridTextColumn Foreground="Black" Width="140" Header="Value" Binding="{Binding Path=Key.Value, Mode=TwoWay}" IsReadOnly="False"/>
<DataGridTextColumn Foreground="Black" Width="140" Header="Type" Binding="{Binding Path=Key.Value, Mode=TwoWay}" IsReadOnly="True"/>
</DataGrid.Columns>
</DataGrid>
如何在使Value值可编辑时绑定到CEKeys列表?一旦确认了值,我将创建列出的密钥。
在键入此内容时,我遇到了第二个问题。每个regkey都有一个键列表。这是因为RegKey可能需要设置多个键才能正常工作。如何显示列表中的所有键?
答案 0 :(得分:0)
列表是一个字段而不是属性,您只能绑定到属性,您需要使用:
public class RegKey
{
public string Name { get; set; }
public List<CEKeys> Key { get; set; }
public RegKey()
{
Key = new List<CEKeys>();
}
}
答案 1 :(得分:0)
如果您想将其添加到列表中,您可以非常轻松地执行此操作:
public class RegKey
{
public string Name { get; set; }
public List<CEKeys> Key = new List<CEKeys>();
Dictionary<string, List<CEKeys>> dictionary = new Dictionary<string, List<CEKeys>>();
public RegKey()
{
Key = new List<CEKeys>();
dictionary.Add(Name, Key);
}
}