我對WPF很新穎。我試圖在MVVM中動態地創建控件,但控件不會呈現在視圖中。我想要在視圖上創建一些標籤和文本框。在MVVM中動態創建控件
下面是我的代碼:
型號代碼
public class MyModel
{
public string KeyName
{
get;
set;
}
public string KeyValue
{
get;
set;
}
}
模型視圖代碼
public class MyViewModel
{
private ObservableCollection<MyModel> propertiesList = new ObservableCollection<MyModel>();
public CustomWriterViewModel()
{
GetMyProperties()
}
public ObservableCollection<MyModel> Properties
{
get { return propertiesList; }
}
private void GetMyProperties()
{
MyModel m = new MyModel();
m.KeyName = "Test Key";
m.KeyValue = "Test Value";
MyModel.Add(m);
}
}
查看代碼(由用戶控制)
<Grid>
<ItemsControl ItemsSource="{Binding Properties}">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type cw:MyModel}">
<StackPanel Orientation="Horizontal">
<Label Margin="10" Content="{Binding Properties.KeyName}"></Label>
<TextBox Margin="10" Text="{Binding Properties.KeyValue}" Width="250"></TextBox>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
當視圖渲染,我只能看空 文本框。我不明白什麼是錯的..?
你不加'propertiesList'集合中的任何東西。 – dymanoid
'MyModel.Add(m);'wat。幫助您在調試器中逐步執行代碼。 https://msdn.microsoft.com/en-us/library/sc65sadd.aspx – Will
在propertiesList中添加了項目,但仍然沒有效果。問題仍然是一樣的。 –