我在UWP中创建了一个用户控件,并使用可观察集合的类型从依赖属性添加了listview绑定。我在我的视图中使用了来自ViewModel的绑定值。但它不起作用。我在listview中看不到任何实体。 我的usercontrol的XAML:
<ListView ItemsSource="{x:Bind TaskLists}"
SelectionMode="None" IsMultiSelectCheckBoxEnabled="False" Name="ListofTasks" >
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="VerticalAlignment" Value="Stretch"/>
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate >
<TextBlock x:Name="title" FontWeight="SemiBold"
FontSize="15" Text="{Binding Subject}" Margin="7,5,0,0" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
C#codebehind:
public ObservableCollection<TaskItem> TaskLists
{
get { return (ObservableCollection<TaskItem>)GetValue(TaskListsProperty); }
set { SetValue(TaskListsProperty, value); }
}
// Using a DependencyProperty as the backing store for TaskLists. This enables animation, styling, binding, etc...
public static readonly DependencyProperty TaskListsProperty =
DependencyProperty.Register("TaskLists", typeof(ObservableCollection<TaskItem>), typeof(TaskList), new PropertyMetadata(null));
我的XAML视图中的UserControl用法:
<Controls:TaskList TaskLists="{Binding TodayList ,Mode=TwoWay}" />
查看型号:
class TimeLineViewModel:INotifyPropertyChanged
{
public TimeLineViewModel()
{
for (int i = 0; i < 10; i++)
{
TodayList.Add(new TaskItem() { ID = i, Detail = "Lurem IPsum Very cool app is under dev to be abnormal and very secret " + i, Subject = "This is Title of " + i
, Imprtance = 1, Isdone = 2, Notify = 1, StartTime = DateTime.Now.AddHours(2), Tags= new ObservableCollection<string>() {"Tagone" , "tagtwo","tagThree","TagFour"}
});
}
}
ObservableCollection<TaskItem> TodayList = new ObservableCollection<TaskItem>();
public event PropertyChangedEventHandler PropertyChanged;
}
答案 0 :(得分:1)
FIXED: 我的ViewModel中有错误。 修复了视图模型中的代码:
class TimeLineViewModel:INotifyPropertyChanged
{
public TimeLineViewModel()
{
TodayList = new ObservableCollection<TaskItem>();
for (int i = 0; i < 10; i++)
{
TodayList.Add(new TaskItem() { ID = i, Detail = "Lurem IPsum Very cool app is under dev to be abnormal and very secret " + i, Subject = "This is Title of " + i
, Imprtance = 1, Isdone = 2, Notify = 1, StartTime = DateTime.Now.AddHours(2), Tags= new ObservableCollection<string>() {"Tagone" , "tagtwo","tagThree","TagFour"}
});
}
}
public ObservableCollection<TaskItem> TodayList { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
}