ビューに含まれるusercontrolでコマンドをバインドするときに問題があります。ListView MVVM内のTextBox上のUWP InvokeCommandAction
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;
}
}
、私はTextChangedイベントで、QSoldChangedを呼びたいが、何がしたいです起こる私は何が欠けていますか?この場合、コマンドを設定するのは正しい方法ですか? もっと必要な場合はお問い合わせください! ありがとうございます
問題はxと共にある作品を願っています。それはモードです。したがって、テキストの変更はビューモデルには反映されません。バインディングに変更します。それがうまくいきますように – Archana