Я пытаюсь использовать 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.