我有一个列表框,它从字典大小中获取值:
这是尺寸类型:
public Dictionary<string, int> Size
{
get;
private set;
}
这是我的列表框
<ListBox x:Name="boardSize" ItemsSource="{Binding Size}" ItemTemplate="{DynamicResource DataTemplate1}" />
这是我关联的DataTemplate:
<Rectangle Margin="8,8,16,8" Stroke="Black" RadiusX="45" RadiusY="45">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="#FFE24A4A" Offset="1"/>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
<TextBlock x:Name="textBlock" **Text="{Binding path=Size}"**/>
我有两个问题:
答案 0 :(得分:2)
在ItemTemplate
内,DataContext
是来自源集合的项目,因此在这种情况下,它是KeyValuePair<string, int>
。因此,密钥的路径只是“密钥”:
<TextBlock x:Name="textBlock" Text="{Binding path=Key}"/>
你的第二个问题不是很明确,你想做什么?通常,在MVVM中使用绑定到命令:绑定到ViewModel公开的ICommand
属性。但是在您的情况下没有ViewModel,因为您的数据对象是KeyValuePair<string, int>
...如果您想要更完整的答案,请提供更多详细信息