C# Can';在listview MVVM中选择EdItem时,不要更改Textblock中的数据绑定

C# Can';在listview MVVM中选择EdItem时,不要更改Textblock中的数据绑定,c#,wpf,data-binding,C#,Wpf,Data Binding,我有个问题。在列表视图中选择项时无法更改数据绑定 这是我的代码xaml(视图): <ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled" ItemsSource="{Binding FCsource, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}">

我有个问题。在列表视图中选择项时无法更改数据绑定

这是我的代码xaml(视图):

 <ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled" ItemsSource="{Binding FCsource, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}">

            <ListView.ItemTemplate>
                <DataTemplate>
                    <Border Margin="10" Width="440" Height="220" >
                        <Grid>
        <TextBlock Text="{Binding Words, Mode = TwoWay}"></TextBlock>
    </Grid>
                    </Border>
                </DataTemplate>
            </ListView.ItemTemplate>

            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Orientation="Horizontal" />
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>

这是我在ViewModel中的代码:

 <ListView ScrollViewer.HorizontalScrollBarVisibility="Disabled" ItemsSource="{Binding FCsource, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}">

            <ListView.ItemTemplate>
                <DataTemplate>
                    <Border Margin="10" Width="440" Height="220" >
                        <Grid>
        <TextBlock Text="{Binding Words, Mode = TwoWay}"></TextBlock>
    </Grid>
                    </Border>
                </DataTemplate>
            </ListView.ItemTemplate>

            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Orientation="Horizontal" />
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
公共可观测收集(来源);

public observeCollection FCsource{get{return AddFlashCard();}set{FCsource=value;OnPropertyChanged();}

private Item _SelectedItem;
public Item SelectedItem { get=>_SelectedItem; set
    {
        _SelectedItem = value;
        OnPropertyChanged();
        if(_SelectedItem!=null)
        {
            SelectedItem.Words="hello"
        }
    }   
}
public WordsViewModel()
{

}

private ObservableCollection<Item> AddFlashCard()
{
    ObservableCollection<Item> listmn = new ObservableCollection<Item>();
    listmn.Add(new Item("qwda");
    listmn.Add(new Item("qwda");
    listmn.Add(new Item("qwda");
    return listmn;
}
private Item\u SelectedItem;
公共项SelectedItem{get=>_SelectedItem;set
{
_选择editem=值;
OnPropertyChanged();
如果(_SelectedItem!=null)
{
选择editem.Words=“你好”
}
}   
}
public WordsViewModel()
{
}
私有ObservableCollection AddFlashCard()
{
ObservableCollection listmn=新的ObservableCollection();
增加(新项目(“qwda”);
增加(新项目(“qwda”);
增加(新项目(“qwda”);
返回列表mn;
}

通过对代码进行一些更改(您在其中有编译错误),它可以按预期工作。可以预见,如果在
类上没有正确实现的
INotifyPropertyChanged
接口,它将停止工作(特别是表示
单词
属性的更改).这可能就是导致您出现问题的原因

以下是工作代码(此处使用
PropertyChanged.Fody版本2.6.0
nuget软件包实现了
INotifyPropertyChanged
):

[AddNotifyPropertyChangedInterface]
公共类WordsViewModel
{
公共可观测收集(来源);;
public observeCollection FCsource{get{return AddFlashCard();}set{FCsource=value;}}
私有词项_SelectedItem;
公共词项SelectedItem
{
获取=>\u选择编辑项;设置
{
_选择editem=值;
如果(_SelectedItem!=null)
{
选择editem.Words=“你好”;
}
}
}
public WordsViewModel()
{       
}
私有ObservableCollection AddFlashCard()
{
ObservableCollection listmn=新的ObservableCollection();
添加(新单词项(“qwda”);
添加(新单词项(“qwda”);
添加(新单词项(“qwda”);
返回列表mn;
}
}
[AddInnotifyPropertyChangedInterface]
公共类WordItem
{
公共字符串{get;set;}
PublicWordItem(字符串字)
{
文字=文字;
}
}

如果您正确地实现了INotifyPropertyChanged,但它仍然不起作用,那么您确定已将视图模型分配给视图的DataContext吗?

不清楚您想做什么,需要做什么failing@DenisSchaf我编辑问题again@DenisSchaf再看一遍这个问题。也许你能帮我。请。。“我不能更改数据绑定”这是什么意思?`你想做什么?@denischaf我想当我在listview中单击(所选项目)然后在listview中单击项目更改值数据绑定时,我再次补充这个问题,你应该再次阅读代码