Доступ к мульти-привязке - PullRequest
0 голосов
/ 09 февраля 2012

Я пытаюсь использовать multibinding, чтобы установить свойство Text для textBox, потому что обычно я связываю информацию столбца dataGrid при выборе строки, но в некоторых случаях я не выбираю строку, поэтому selectedItem имеет значение null, и в этом случае я хотел бы привязать свойство в моей модели представления.

Ну, я видел несколько примеров того, как это можно сделать, но проблема в том, что у меня есть доступ к многосвязному тексту. Пример таков:

<TextBox Name="myTextBox"
         VerticalAlignment="Top"
         TabIndex=10>
    <TextBox.Text>                                              
     <MultiBinding Converter="{StaticResource myConverter}">
       <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="SelectedValue"/>
       <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="NullText"/>
     </MultiBinding>                                              
    </TextBox.Text>
</TextBox>

Моя проблема в том, что когда я пишу пятую строку, мультибидинг ... это недоступно, у меня есть только

!--
![CDATA[
?
/TextBox.Text
d:
i:
mc:
x:

Как я могу получить доступ к мультибайдингу?

Спасибо. Daimroc.

EDIT1:

На самом деле в моем текстовом поле у ​​меня есть следующее:

    <TextBox Name="txtAuthorName"
                     Height="23"
                     HorizontalAlignment="Left"
                     Margin="12,314,0,0"
                     VerticalAlignment="Top"
                     Width="120"
                     TabIndex="10">                

                <TextBox.Style>
                    <Style TargetType="{x:Type TextBox}">
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding ElementName=authorsDataGrid, Path=SelectedItems.Count}" Value="1">
                                <Setter Property="Text" Value="{Binding ElementName=authorsDataGrid, Path=SelectedItem.Name, Mode=TwoWay}"/>
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </TextBox.Style>
    </TextBox>

Я использую стиль, чтобы использовать dataTrigger, потому что я хочу, чтобы в dataGrid была выбрана только одна строка, связывающая информацию каждого столбца с одним txtBox. В этом случае я приведу пример имени, но я бы сделал то же самое с другими полями.

Я думаю об этой опции, потому что я хотел бы добавить или обновить регистры двумя способами, напрямую из dataGrid или из textBox. Потому что некоторые люди, возможно, предпочитают использовать dataGrid и другие текстовые поля.

При запуске dataGrid пуст, поэтому selectedItem имеет значение null, поэтому, если я хочу добавить нового автора из TextBox, когда в ViewModel я использую свой класс, который соединяется с базой данных, чтобы добавить новый регистр, информация является нулевой, потому что я использую selectedItem из dataGrid. У меня нет информации для использования.

Так что я думаю использовать свойство в viewModel для привязки textBox в случае, если selectedItem объекта dataGrid равен нулю. В этом случае, когда я хочу добавить новый регистр, который я могу сравнить, если selectedItem имеет значение null, я использую свойство viewModel, а не привязываю textBox, если не равен null, я использую selectedItem.

Чтобы сделать это, если я не ошибаюсь, мне нужно использовать мульти-привязку, но у меня нет доступа к мульти-привязке textBox.

...