C# Grid.Add.Children(UIElement)返回的参数不正确异常
我试图在两个轴项目中添加边框 当我的边框第一次添加到透视项中的网格时,一切都正常。但是,当我第二次尝试在同一透视项中添加边框时,它会抛出一个异常“参数不正确” 这是我的密码:C# Grid.Add.Children(UIElement)返回的参数不正确异常,c#,silverlight,windows-phone-7,pivot,uielement,C#,Silverlight,Windows Phone 7,Pivot,Uielement,我试图在两个轴项目中添加边框 当我的边框第一次添加到透视项中的网格时,一切都正常。但是,当我第二次尝试在同一透视项中添加边框时,它会抛出一个异常“参数不正确” 这是我的密码: private void pivot_item1Loaded() { WebClient webClient2011 = new WebClient(); string Url2011 = "http://hostname/Details/Images?yea
private void pivot_item1Loaded()
{
WebClient webClient2011 = new WebClient();
string Url2011 = "http://hostname/Details/Images?year=2011" + "&time=" + System.DateTime.UtcNow;
webClient2011.OpenReadAsync(new Uri(Url2011));
webClient2011.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted2011);
}
private void pivot_item2Loaded()
{
WebClient webClient2012 = new WebClient();
string Url2012 = "http://hostname/Details/Images?year=2012" +"&time="+ System.DateTime.UtcNow;
webClient2012.OpenReadAsync(new Uri(Url2012));
webClient2012.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted2012);
}
public void webClient_OpenReadCompleted2011(object sender, OpenReadCompletedEventArgs e)
{
StringBuilder output = new StringBuilder();
try
{
using (XmlReader reader = XmlReader.Create(e.Result))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == "iconPath")
{
string iconPath = reader.ReadElementContentAsString();
iconImages2011.Add(iconPath);
}
if (reader.Name == "imagePath")
{
string imagePath = reader.ReadElementContentAsString();
fullScreenImages2011.Add(imagePath);
}
}
}
}
int numOfRows = (iconImages2011.Count) / 3 + 1;
for (int j = 0; j < numOfRows; j++)
{
//pivot_item1
ContentPanel2011.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(150) });
}
int rowCount = 0;
int columnCount = 0;
for (int i = 0; i < iconImages2011.Count; i++)
{
Border border2011 = new Border();
border2011.Background = new SolidColorBrush(Colors.Blue);
border2011.Height = 110;
border2011.Width = 110;
border2011.CornerRadius = new CornerRadius(10);
Canvas canvas2011 = new Canvas();
canvas2011.Height = 110;
canvas2011.Width = 110;
BitmapImage AppImage = new BitmapImage(new Uri(iconImages2011[i], UriKind.Absolute));
Image img = new Image();
img.Source = AppImage;
img.Width = 90;
img.Height = 90;
img.Stretch = Stretch.Fill;
img.Margin = new Thickness(10, 10, 10, 10);
canvas2011.Children.Add(img);
border2011.Child = canvas2011;
border2011.Name = i.ToString();
Grid.SetColumn(border2011, columnCount);
Grid.SetRow(border2011, rowCount);
ContentPanel2011.Children.Add(border2011);
pivot2011.Content = ContentPanel2011;
if (columnCount < 2)
{
columnCount++;
}
else if (columnCount == 2)
{
columnCount = 0;
rowCount++;
}
}
}
catch (Exception x)
{
MessageBox.Show(x.Message);
}
}
private void pivot\u item1Loaded()
{
WebClient WebClient 2011=新的WebClient();
字符串Url2011=”http://hostname/Details/Images?year=2011“+”&time=“+System.DateTime.UtcNow;
OpenReadAsync(新Uri(Url2011));
webClient 2011.OpenReadCompleted+=新的OpenReadCompletedEventHandler(webClient\u OpenReadCompleted2011);
}
私有void pivot_item2Loaded()
{
WebClient WebClient 2012=新的WebClient();
字符串Url2012=”http://hostname/Details/Images?year=2012“+”&time=“+System.DateTime.UtcNow;
OpenReadAsync(新Uri(Url2012));
webClient 2012.OpenReadCompleted+=新的OpenReadCompletedEventHandler(webClient\u OpenReadCompleted2012);
}
public void webClient_OpenReadCompleted2011(对象发送方,OpenReadCompletedEventArgs e)
{
StringBuilder输出=新的StringBuilder();
尝试
{
使用(XmlReader=XmlReader.Create(e.Result))
{
while(reader.Read())
{
if(reader.NodeType==XmlNodeType.Element)
{
如果(reader.Name==“iconPath”)
{
字符串iconPath=reader.ReadElementContentAsString();
iconImages2011.添加(iconPath);
}
if(reader.Name==“imagePath”)
{
字符串imagePath=reader.ReadElementContentAsString();
FullScreenImage2011.Add(imagePath);
}
}
}
}
int numorrows=(iconImages2011.Count)/3+1;
对于(int j=0;j
此代码首次工作,但在此之后出现异常,ContentPanel2011即pivot_item1没有用border2011填充,它完成了。
在再次设置内容之前,只需将枢轴上的内容属性设置为null
我刚才补充说:
pivot2011.Content = null;
pivot2012.Content = null;
在pivot\u item1Loaded()
和pivot\u item2Loaded()
它工作正常。看起来是在
ItemsControl
上绑定ItemsSource
属性并为itemstemplate
指定自定义DataTemplate
来定义每个列表项(边框、画布、图像)的可视树的理想情况@McKay u r right事实上,我没有得到我最后3个问题的答案。在本周之前,答案超过了80%。我相信我会进步的