我能夠改變文本,這個改變的文本出現在ListBox
沒有問題。
用戶控件:
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
this.DataContext = this;
}
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
// Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc...
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof(string), typeof(UserControl1), new PropertyMetadata("unset"));
}
窗口1:
public partial class Window1 : Window
{
IList<UserControl1> ucList = new[] { new UserControl1() { Text = "some text" }, new UserControl1() { Text = "some more value" } };
public Window1()
{
InitializeComponent();
LstBox.ItemsSource = ucList;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
ucList[0].Text = DateTime.Now.ToString();
/* Now textbox shows current date-time */
}
}
謝謝!這個答案真的幫了我很多!我是一名經驗豐富的C#開發人員,但WPF對我而言仍然是新手。這個ItemSource屬性看起來非常有用,我肯定會在我的應用程序中實現它。我發現使用UIElements的ObservableCollection還會在添加或刪除某些東西時自動更新列表。 – Mark
添加/刪除不同於更新項目本身。 – AnjumSKhan
確實如此,但IList的長度是固定的,並且使用不可觀察的集合會導致列表在更改集合時不自動更新。但是,由於你的回答,我已經完成了所有工作。 – Mark