Silverlight Binding Path динамически - PullRequest
       13

Silverlight Binding Path динамически

1 голос
/ 03 сентября 2010

Я потратил часы на это, поэтому любая помощь очень ценится:

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

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

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

1 Ответ

1 голос
/ 03 сентября 2010

Я наконец нашел решение! Вместо того чтобы пытаться динамически изменять путь внутри 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);
...