2010-09-02 5 views
1

Я проводил часы на этом, так что любая помощь очень ценится:Silverlight Binding Path Динамически

У меня есть TextBlock внутри DataTemplate, который имеет ItemsSource уже установлен. Я хочу привязать текст TextBlock и установить путь к тому, что путь имеет другой объект в коде. Я пробовал все, что я могу думать даже это:

<TextBlock Text="{Binding Path='{Binding ElementName=sendingComboColumn,Path=DisplayMemberPath}'}" /> 

Я просто не могу понять, как динамически установить путь !! Он должен быть общим в зависимости от того, какой столбец назвал его.

ответ

1

Я, наконец, нашел решение! Вместо того, чтобы динамически изменять путь внутри DataTemplate, я просто создаю новый DataTemplate в коде и назначаю ListBox.ItemTemplate новому шаблону DataTemplate:

public static DataTemplate CreateTemplate(string path) 
     { 
      return (DataTemplate)XamlReader.Load(
       @"<DataTemplate xmlns=""http://schemas.microsoft.com/client/2007""> 
        <StackPanel Orientation='Horizontal'> 
         <CheckBox IsChecked='{Binding}' /> 
         <TextBlock Text='{Binding Path=" + path + @"}'/> 
        </StackPanel> 
        </DataTemplate>" 
       ); 
     } 
    this.listBox.ItemTemplate = CreateTemplate(path);