wpf listbox dataBinding - PullRequest
       9

wpf listbox dataBinding

0 голосов
/ 02 октября 2010

У меня есть список, который принимает значения из словаря. Размер:

это тип размера:

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. куда я положил ** Я хочу, чтобы текст в текстовом блоке содержал значение ключа размера
  2. как сделать шаблон команды при нажатии кнопки?

1 Ответ

2 голосов
/ 03 октября 2010

Внутри ItemTemplate, DataContext является элементом из исходной коллекции, поэтому в этом случае это KeyValuePair<string, int>.Таким образом, путь к ключу - это просто «Ключ»:

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

Ваш второй вопрос не очень понятен, что вы хотите сделать именно?Обычно привязка к командам используется в MVVM: вы привязываетесь к свойству ICommand, предоставляемому вашей ViewModel.Однако в вашем случае нет ViewModel, так как ваш объект данных - KeyValuePair<string, int> ... Пожалуйста, дайте более подробную информацию, если вы хотите более полный ответ

...