wpf listbox dataBinding

时间:2010-10-02 19:20:50

标签: wpf wpf-controls binding

我有一个列表框,它从字典大小中获取值:

这是尺寸类型:

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}"**/>

我有两个问题:

  1. 我推送的地方**我希望文本块文本包含Size键值
  2. 按下按钮时如何进行命令模式?

1 个答案:

答案 0 :(得分:2)

ItemTemplate内,DataContext是来自源集合的项目,因此在这种情况下,它是KeyValuePair<string, int>。因此,密钥的路径只是“密钥”:

<TextBlock x:Name="textBlock" Text="{Binding path=Key}"/>

你的第二个问题不是很明确,你想做什么?通常,在MVVM中使用绑定到命令:绑定到ViewModel公开的ICommand属性。但是在您的情况下没有ViewModel,因为您的数据对象是KeyValuePair<string, int> ...如果您想要更完整的答案,请提供更多详细信息