Привязка ExpressionTextBox в ListBox ItemTemplate - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть ExpressionTextBox, который я связываю со свойством InArgument класса, который реализует интерфейс INotifyPropertyChanged.ExpressionTextBox (ETB) находится в ListBoxItemTemplate.Я предполагаю, что моя привязка OwnerActivity терпит неудачу, но после попытки несколькими способами.То, что сработало, было

OwnerActivity="{Binding ModelItem, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=sap:ActivityDesigner}}

Во время выполнения я мог набирать Literal или назначать переменные, но когда я устанавливал значение из кода позади, используя ModelIemCollection.Properties ["FileName"]. SetValue значение получаетправильно установить свойство, но не видно в ExpressionTextBox в моей CustomActivity.

XamlCode:

<ListBox ItemsSource="{Binding Path=FilesCollection}" >
                <ListBox.ItemTemplate>
                    <DataTemplate DataType="{x:Type local:FileDataSet}">                       
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="25"></RowDefinition>                                
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="50"/>
                                <ColumnDefinition Width="175" />
                                <ColumnDefinition Width="25"/>
                            </Grid.ColumnDefinitions>
                            <TextBlock Grid.Row="0" Grid.Column="0" Text="FileName:" VerticalAlignment="Center" HorizontalAlignment="Left" Height="16" Margin="0,4,0,5" Width="95" />
                            <sapv:ExpressionTextBox Name ="ExpressionExportFile" Grid.Row="0" Grid.Column="1"  
                                    Expression="{Binding Path=FileName, Mode=TwoWay,                                    
                                        NotifyOnValidationError=True,
                                        ValidatesOnDataErrors=True, ValidatesOnExceptions=True, 
                                        Converter={StaticResource ArgumentToExpressionConverter}, ConverterParameter=In}"
                                    ExpressionType="{x:Type TypeName=s:String}"
                                    OwnerActivity="{Binding ModelItem, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=sap:ActivityDesigner}}"
                                    HintText="Enter file name"                                     EditorLostLogicalFocus="ExpressionExportFile_EditorLostLogicalFocus"/>                          

                        </Grid>

Я не понимаю, как установить OwnerActivity для ETB в ListBoxItemTemplate. Проблема в том,Привязка OwnerActivity или ExpressionBinding?(полностью сбит с толку)

Моя структура - TabControl => TabControlContentTemplate => DataTemplate (имеющая вышеуказанную структуру кода ListBox).Это означает, что у меня есть ObserverableCollection, где TabDataItem содержит ObservableCollection.Любой новый способ помочь мне исправить переплет высоко ценится.Заранее спасибо.

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