編輯:基本問題是將List綁定到ListBox(或任何其他控件)。所以我正在編輯這個問題。如何在綁定到列表時使ListBox可編輯<string>?
我將一個字符串列表綁定到一個ListBox,如下所示。但是,當我更改文本框的內容時,它不會更改源列表中的字符串。爲什麼?
public partial class MainWindow : Window
{
List<string> _nameList = null;
public List<string> NameList
{
get
{
if (_nameList == null)
{
_nameList = new List<string>();
}
return _nameList;
}
set
{
_nameList = value;
}
}
public MainWindow()
{
NameList.Add("test1");
NameList.Add("test2");
InitializeComponent();
}
而XAML
<ListBox Grid.Row="0" Grid.Column="0" DataContext="{Binding ElementName=main}" ItemsSource="{Binding NameList}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding .,Mode=OneWayToSource , UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
謝謝托馬斯,很好的回答。僅供參考,代碼「public string class StringItem {}」讓我困惑,可能是一個錯誤。 – Jimmy 2011-04-27 16:16:22
@Jimmy,是的,這是一個錯誤...我打字時一定被分心了;) – 2011-04-27 16:47:35