wpf - как я могу создать зависимость между экспандером внутри сетки данных и одним из свойств сетки данных - PullRequest
1 голос
/ 10 марта 2010

Это общий вопрос. И, возможно, не является специфическим для данных. Как я могу связать 2 свойства или 2 разных элемента интерфейса / элементы управления

Как и у каждого datagridRow есть Expander, и я хочу, чтобы свойство IsExpanded зависело от выбранного события datagridrow.

Спасибо

1 Ответ

1 голос
/ 10 марта 2010

Относительная привязка источника может использоваться для привязки двух свойств без ссылки на элемент источника по имени. Это особенно полезно для стилей.

Вот пример ListBox с элементами, которые расширяются при выборе.

<ListBox>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Expander
                Header="{Binding}"
                IsExpanded="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ListBoxItem}, Path=IsSelected}">
                <TextBlock
                    Text="{Binding}" />
            </Expander>
        </DataTemplate>
    </ListBox.ItemTemplate>

    <sys:String>a</sys:String>
    <sys:String>b</sys:String>
    <sys:String>c</sys:String>
    <sys:String>d</sys:String>

</ListBox>

Когда мне нужна необычная привязка, я регулярно использую шпаргалку, размещенную Nir в его блоге и упоминаемую в вопросе StackOverflow Есть ли там WPF Cheat Sheet? .

Вот прямая ссылка шпаргалка .

Если вы когда-нибудь прочитали это, спасибо, Нир.

...