Связывание нескольких источников свойств зависимостей элемента в wpf - PullRequest
0 голосов
/ 26 сентября 2019

Можно ли привязать несколько источников к свойствам зависимости элемента?

В моем случае у меня есть элемент управления со списком, его свойство ItemSource заполнено моделью представления, однако свойство Text привязано к модели, которая являетсяиспользуется ItemsControl.

Спасибо.

фрагмент xaml:

<DataTrigger Binding="{Binding EnumType}" Value="6">
<Setter Property="ContentTemplate">
    <Setter.Value>
        <DataTemplate>                
            <ComboBox    
                x:Name="ListOfItems"  
                IsDropDownOpen="{Binding IsDropDownOpen,Mode=OneWay,UpdateSourceTrigger=PropertyChanged}"
                StaysOpenOnEdit="True"
                IsTextSearchEnabled="False"
                IsReadOnly="False"
                IsEditable="True"
                ItemsSource="{Binding Path=FilteredSource,  Source={StaticResource ItemsVM} ,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}"
                Text="{Binding   Path=Result, UpdateSourceTrigger=PropertyChanged}"                 
                DisplayMemberPath="{Binding  Path=Item.Name,  Source={StaticResource ItemsVM}}" >                 

                <ComboBox.Triggers>
                    <EventTrigger RoutedEvent="TextBoxBase.TextChanged">
                        <BeginStoryboard>
                            <Storyboard>
                                <BooleanAnimationUsingKeyFrames   Storyboard.TargetProperty="IsDropDownOpen">
                                    <DiscreteBooleanKeyFrame Value="True" KeyTime="0:0:0" />
                                </BooleanAnimationUsingKeyFrames>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </ComboBox.Triggers>
            </ComboBox>
        </DataTemplate>
    </Setter.Value>
</Setter>

1 Ответ

1 голос
/ 26 сентября 2019

Вы можете установить Source каждой привязки, как вы в настоящее время делаете для свойства ItemsSource:

ItemsSource="{Binding Path=FilteredSource, Source={StaticResource ItemsVM}}"

Если вы этого не сделаете, каркас будет искать FilteredSource свойство в текущем DataContext из ComboBox.

Кстати, свойство DisplayMemberPath должно быть установлено в string, которое указывает имя свойства элемента в ItemsSource:

DisplayMemberPath="Name"

Вы не должны связываться с этим свойством.

Также не имеет смысла устанавливать свойство UpdateSourceTrigger для привязки ItemsSource в PropertyChanged, илиустановите Mode на TwoWay, так как элемент управления не установит свойство источника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...