我如何单击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;
}
在数据定位板上编写一个简单的按钮,然后在内部放置您的文本block:
<Button Command="YourRelayCommand">
<TextBlock Text="{Binding Words}" />
</Button>