我正在寻找将单个文本框绑定到在gridviewcolumn中找到的值。 但是,编辑文本框时,我希望它也编辑和更新我选择的网格视图列行。将文本框绑定到列表视图GridViewColumn
XAML
<ListView x:Name="ExampleLV" ItemsSource="{Binding Data.Collection}">
<ListView.View>
<GridView>
<GridViewColumn Header="ColumnName1" DisplayMemberBinding="{Binding Value[0], Mode=TwoWay}"/>
<GridViewColumn Header="ColumnName2" DisplayMemberBinding="{Binding Value[1], Mode=TwoWay}"/>
</GridView>
</ListView.View>
</ListView>
<TextBox Name="ExampleTB1" Text="{Binding ElementName=ExampleLV, Path=SelectedItem.Values[0]}"/>
<TextBox Name="ExampleTB2" Text="{Binding ElementName=ExampleLV, Path=SelectedItem.Values[1]}"/>
C# - 收集被映射到字符串数组
Collection.Add(new ListViewItem() { Values = new string[] { "abc", "123" } });
的ListViewItem的是我建立了一个自定义类。
public class ListViewItem : INotifyPropertyChanged
{
private string[] _values;
#region Properties
public string[] Values
{
get { return _values; }
set
{
if (value == _values) return;
_values = value;
OnPropertyChanged();
}
}
#endregion
public event PropertyChangedEventHandler PropertyChanged;//[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
我遇到的问题是正在更新文本框的值,但他们没有更新listviewItem。但是,存储的值只是更新而不是GridViewColumn。
我也希望这个工作与组合框。请帮助:)
是的,感谢@ mm8我实现了这一点,它有意义,但它仍然不能实时匹配值。只在项目点击。 –
我应该更清楚,它现在正在更新,但重点退出。是否有可能在按键上更新? –
编辑:UpdateSourceTrigger = PropertyChanged解决了这个问题。谢谢! –