Ich habe ein Problem, einen Befehl in einem Benutzersteuerelement in einer Ansicht enthalten zu binden.UWP InvokeCommandAction auf TextBox in ListView MVVM
UserControl.xaml
<DataTemplate x:Key="SoldItemDataTemplate" x:DataType="data:SoldItem">
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
...
</Grid.ColumnDefinitions>
...
<TextBox Grid.Column="2" Text="{x:Bind q}">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior EventName="TextChanged">
<Core:InvokeCommandAction Command="{Binding Path=DataContext.QChanged, ElementName=SoldRows}" CommandParameter="{Binding Mode=TwoWay}"/>
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</TextBox>
</Grid>
</DataTemplate>
...
<ListView x:Name="SoldRows"
ItemsSource="{Binding SoldItemsList , Mode=TwoWay}"
IsItemClickEnabled="True"
ItemTemplate="{StaticResource SoldItemDataTemplate}">
...
MainPage.xaml
<Page.DataContext>
<vm:MainPageViewModel x:Name="ViewModel"></vm:MainPageViewModel>
</Page.DataContext>
...
<controls:UserControl Grid.Row="1"></controls:UserControl>
...
MainPageViewModel.cs
...
private DelegateCommand<object> _QSoldChanged;
...
public DelegateCommand<object> QSoldChanged
{
get
{
if (_QSoldChanged == null)
{
_QSoldChanged = new DelegateCommand<object>((object par) =>
{
...
});
}
return _QSoldChanged;
}
}
So möchte Ich mag QSoldChanged nennen, auf Textchanged-Ereignis, aber nichts das passiert. Was vermisse ich? Ist das der richtige Weg, um in diesem Fall den Befehl zu setzen? Wenn Sie mehr brauchen, fragen Sie einfach! Vielen Dank im Voraus
Problem x: Binden von Textbox. Es ist ein Modus. Textänderungen spiegeln also nicht das Ansichtsmodell wider. Ändern Sie es in Bindung. hoffe es funktioniert – Archana