Bla*_*ell 2 silverlight .net-4.0 mvvm
我是Silverlight的新手,所以我没有完全掌握所有可用的控件.我想要做的是使用数据绑定和视图模型来维护项目集合.这是我想要做的一些模拟代码:
模型
public class MyItem
{
public string DisplayText { get; set; }
public bool Enabled { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
视图模型
public class MyViewModel : INotifyPropertyChanged
{
private ObservableCollection<MyItem> _myItems = new ObservableCollection<MyItem>();
public ObservableCollection<MyItem> MyItems
{
get { return _myItems; }
set
{
_myItems = value
NotifyPropertyChanged(this, "MyItems");
}
}
}
Run Code Online (Sandbox Code Playgroud)
视图
<Grid x:Name="LayoutRoot" Background="White">
<StackPanel ItemsSource="{Binding MyItems}">
<StackPanel Orientation="Horizontal">
<CheckBox "{Binding Enabled, Mode=TwoWay}"></CheckBox>
<TextBlock Text="{Binding DisplayText, Mode=TwoWay}" />
</StackPanel>
</StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)
所以我的最终目标是每次我将另一个添加MyItem到MyItems集合时,它将创建一个带有复选框和文本块的新StackPanel.我不必使用堆栈面板但只是想我会将其用于此示例.
看起来你想要一个<ListBox>,然后设置<ListBox.ItemTemplate>你的<StackPanel>东西......
<ListBox ItemsSource=”{Binding Classes, Source={StaticResource model}}”>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox "{Binding Enabled, Mode=TwoWay}"/>
<TextBlock Text="{Binding DisplayText, Mode=TwoWay}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
这是一个很好的例子(它是WPF,但应该只是对silverlight的微小改动)
| 归档时间: |
|
| 查看次数: |
4735 次 |
| 最近记录: |