我半定期地遇到以下问题:我对XAML或它使用的一些资源进行了更改,当我在调试模式下加载Silverlight项目时,它只能获得旋转的Silverlight加载动画.
我已经尝试将VS08调试器附加到进程,但此时它没有做任何事情(一旦我在Silverlight中但之前没有工作正常.)
根据以前的经验,我注意到当XAML或其中的资源出现问题时会发生这种情况,但到目前为止我唯一的解决方案是逐行剖析代码,直到我发现问题为止.
有没有简单的方法来调试/诊断这些情况?
我在一些帮助下发现了这个问题,但它仍然没有提供调试这些类型问题的好方法.
我正在寻找一种方法来自动将Silverlight UserControl的初始焦点设置为特定控件.我有一个登录页面与用户名的文本框,我想有它,这样一旦用户进入页面的光标已经定位,并在用户名文本框等,而不必让他们点击文本框.
我尝试在UserControl的Loaded事件中调用.Focus,但没有成功.有人知道怎么做吗?
在调用SubmitChanges()之前,任何人都可以告诉我是否/如何在Linq2Sql中验证数据上下文中的更改.我的情况是我创建一个上下文,执行多个操作并添加许多插入以及其他处理任务,然后如果提交失败则回滚.
我想做的是在完成某些任务后进行某种"Validate()"调用,这样我就可以在提交整个作业之前处理它.
我正在尝试以编程方式将事件和元素添加到Silverlight 3.0应用程序中的DataTemplate.我有一个带有依赖项属性的用户控件,我想在其中设置模板,调整它,然后将修改后的版本设置为内部控件.
我的想法是采用进来的DataTemplate,读取它的XAML,调整它,然后使用XamlReader创建一个可以设置为内部控件的修改后的DataTemplate.这种方法的问题是我不知道如何从原始模板中获取XAML(如果它甚至可能.)例如:
protected virtual void OnItemTemplateChanged(DependencyPropertyChangedEventArgs e)
{
// Get the original Xaml from the set template
//string originalXaml = ???
// Modify the template
string newXaml = originalXaml.Replace("foo", "bar"); // for example
// Create a new template from the modified XAML
DataTemplate newTemplate = (DataTemplate)XamlReader.Load(newXaml);
// Update the inner template
this._childDropdown.ItemTemplate = newTemplate;
}
Run Code Online (Sandbox Code Playgroud)
有人知道:1)是否有办法读取原始XAML,或2)另一种以编程方式修改DataTemplate的方法.
谢谢,
我有一个与此相关的问题:我正在尝试将事件附加到我的StackPanel,但在使用XamlReader时似乎没有连接.我无法调用ChildItem_Load方法.有谁知道这样做的方法?
除了这个事件,代码工作正常.
this._listBox.ItemTemplate = (DataTemplate) XamlReader.Load(
@"<DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"">
<Border>
<StackPanel Loaded=""ChildItem_Loaded"">
<TextBlock Text=""{Binding " + this._displayMemberPath + @"}"" />
</StackPanel>
</Border>
</DataTemplate>"
Run Code Online (Sandbox Code Playgroud) 我正在使用Silverlight 3应用程序并使用Chrome作为我的测试浏览器.在调试时我不断收到弹出消息:
插件没有响应
以下插件没有响应:未知你想阻止我吗?
是/否
如何在Chrome中将其关闭?VS可以设置为仅在调试时将其关闭吗?调试时真的很痛苦.
谢谢,
我正在尝试将IsLoading属性绑定到UI的LayoutRoot Grid的Cursor属性.我试图让主应用程序光标变成沙漏,只要属性说它正在加载.
我绑定财产如下:
<Grid Cursor="{Binding IsLoading, Converter={StaticResource CursorConverter}}">
Run Code Online (Sandbox Code Playgroud)
键"CursorConverter"映射到资源中的BoolToCursorConverter.转换器代码是:
public class BoolToCursorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (parameter == null)
return ((bool)value == true) ? Cursors.Wait : Cursors.Arrow;
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
Cursor cursor = value as Cursor;
if (cursor != null)
return cursor == Cursors.Wait ? true : false;
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时虽然我得到了XamlParseException"给定的密钥在字典中不存在."
任何帮助将不胜感激,谢谢,
我可以加载纹理:
Texture2D texture = ContentManager.Load<Texture2D>(assetName);
Run Code Online (Sandbox Code Playgroud)
但是如果文件不存在,则抛出异常.有没有办法确定给定名称的请求资产是否实际存在?
我使用后缀数字计数器(art001.png,art002.png,...)存储一系列资产,并希望通过简单的调用来预先加载纹理.
如果我设置了一个默认值,如果该组为空并且调用.FirstOrDefault()了一个不满足的条件,我没有得到我的默认值,但是类型的默认值:
int[] list = { 1, 2, 3, 4, 5 };
Console.WriteLine(list.DefaultIfEmpty(1).FirstOrDefault(i => i == 4)); // Outputs 4, as expected
Console.WriteLine(list.DefaultIfEmpty(1).FirstOrDefault(i => i > 5)); // Outputs 0, why??
Run Code Online (Sandbox Code Playgroud)
这似乎不直观,因为我设置.DefaultIfEmpty()为1.为什么这不输出1?
我在多线程环境中有一个高吞吐量的Singleton.通常我会做这样的事情:
public static Foo GetInstance()
{
lock (Foo._syncLock)
{
if (Foo._instance == null)
Foo._instance = new Foo();
return Foo._instance;
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道如果执行以下操作会更有效率,因为它会避免连续的线程锁定,或者是否存在隐藏的问题?
public static Foo GetInstance()
{
if (Foo._instance != null)
return Foo._instance;
lock (Foo._syncLock)
{
if (Foo._instance == null)
Foo._instance = new Foo();
return Foo._instance;
}
}
Run Code Online (Sandbox Code Playgroud) c# ×5
silverlight ×5
xaml ×5
.net ×3
datatemplate ×2
linq ×2
debugging ×1
linq-to-sql ×1
singleton ×1
validation ×1
xna ×1