我想将所有文本框从datagrid绑定到string列表。我不知道怎么做。 我在datagrid的一列中有文本框:
<DataGrid ItemsSource="{Binding Data}">
<DataGridTextColumn Binding="{Binding Title}" Header="Title" IsReadOnly="True">
DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Width="60" Text="{Binding DataList, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"></TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGridTextColumn>
</DataGrid>
在ViewModel中:
public ObservableCollection<DataObject> Data //datasource
{
get { return _data;}
set { _data = value; OnPropertyChanged(nameof(Data)); }
}
public ObservableCollection<string> DataList //here must be data from textboxes
{
get { return _dataList; }
set { _dataList = value; OnPropertyChanged(nameof(DataList)); }
}
为简单起见,我没有在这里写命令。在命令的操作方法中,DataList属性仍为空。
由于
答案 0 :(得分:0)
试试这个:
echo "'yes' 'new' 'this is a comment'" | cc_update -m LATEST -f
写入转换器,用于将字符串集合转换为单个字符串。
<DataGrid ItemsSource="{Binding Data}" AutoGenerateColumns="False">
<DataGrid.Resources>
<local:CollectionToStringConverter x:Key="CollectionToStringConverter"/>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTemplateColumn Header="Title" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding DataContext.DataList,Converter={StaticResource CollectionToStringConverter},RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>