2015-01-21 4 views
1

У меня есть Button, определенный в XAML, который содержит Command, включая . Command привязывается к ViewModel текущего вида, а CommandParameter привязывается к другому элементу управления в текущем представлении. В WPF это будет выглядеть так:Xamarin.Forms View-to-View привязка без изменения BindingContext

<TextBox x:Name="MyTextBox" /> 
<Button Command="{Binding ViewmodelCommand}" 
     CommandParameter="{Binding ElementName=MyTextBox, Path=Text}" /> 

Согласно documentation, в Xamarin.Forms View-к-View связывания можно с помощью изменения элемента управления BindingContext с помощью расширения x:Reference разметки:

<Button BindingContext="{x:Reference Name=MyTextBox}" 
     CommandParameter="{Binding Path=Text}" /> 

В этом Случай, однако, я не могу привязать Command к глобальной модели Viewmodel! Есть ли какие-либо решения для этого сценария?

ответ

0

Вы решили это?

, что я сделал, чтобы добавить связывание MyTextBox < -> ViewModel нравится:

MyTextBox.SetBinding (Entry.TextProperty, "Имя_свойства");

btn.SetBinding (Button.CommandProperty, "CommandName"); btn.SetBinding (Button.CommandParameterProperty, "PropName");

+0

Вы правы, это, как я решил. Хотя мне бы понравилось более короткое решение, похоже, это единственный способ сделать это на данный момент. – andreask

1

Попробуйте это:

<Button Command="{Binding ViewmodelCommand}" 
     CommandParameter="{Binding Source={x:Reference MyTextBox}, Path=Text}" />