如何通过单击进入ItemsControl MVVM来更改TextBlock的数据绑定?

时间:2019-06-24 14:24:12

标签: c# wpf wpf-controls

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

这是我在View中的代码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:

公共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;
}

1 个答案:

答案 0 :(得分:0)

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

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