繁体   English   中英

如何通过Click更改TextBlock的数据绑定到ItemsControl MVVM?

[英]How to change databinding of TextBlock by Click into ItemsControl MVVM?

如何单击1 ItemsControl然后它更改值文本但它不起作用

这是我在视图中的代码xaml:

<ItemsControl ItemsSource="{Binding FCsource}">
    <ItemsControl.ItemTemplate>
                                    <DataTemplate>
                                        <Border Margin="10" Width="440" Height="220" >
                                            <i:Interaction.Triggers>
                                                <i:EventTrigger EventName="MouseLeftButtonDown">
                                                    <i:InvokeCommandAction Command="{Binding RelativeSource={RelativeSource AncestorType=Window, Mode=FindAncestor}, Path=DataContext.MouseLeftButtonDown }" >
                                                    </i:InvokeCommandAction>
                                                </i:EventTrigger>
                                            </i:Interaction.Triggers>
                                            <Grid>
                                                <TextBlock Text="{Binding Words}"></TextBlock>
                                            </Grid>
                                        </Border>
                                    </DataTemplate>
                                </ItemsControl.ItemTemplate>
    </ItemsControl>

这是我在ViewModel中的代码xaml:

public ObservableCollection _FCsource;

public ObservableCollection<Model.MenuItem> FCsource { get { return AddFlashCard(); } set { FCsource = value; OnPropertyChanged(); } }

private String _Words;
public string Words { get => _Words; set { _Words = value; OnPropertyChanged(); } }

public RelayCommand MouseLeftButtonDown { get; set; }

public WordsViewModel()
{
    MouseLeftButtonDown = new RelayCommand(() => MessageBox.Show("Message", "Hi"));
}

private ObservableCollection<MenuItem> AddFlashCard()
{
    ObservableCollection<MenuItem> listmn = new ObservableCollection<MenuItem>();
    listmn.Add(new MenuItem("qwda"));
    listmn.Add(new MenuItem("qwda"));
    return listmn;
}

如何在DataTemplate中编写一个简单的按钮,然后在其中放置TextBlock:

<Button Command="YourRelayCommand">
    <TextBlock Text="{Binding Words}" />
</Button>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM