标签: silverlight

SelectedItem,SelectedValue和SelectedValuePath之间的区别

以下是有什么区别的:

所有这些依赖项属性都在Selector类中定义.我经常混淆SelectedItemSelectedValue,并SelectedValueSelectedValuePath.

我想知道它们之间的区别,并且当我们使用它们,尤其是SelectedValueSelectedValuePath.请用一些简单的例子解释它们的用法.

silverlight wpf xaml selectedvalue selecteditem

335
推荐指数
4
解决办法
23万
查看次数

如何在WPF TextBox中自动选择焦点上的所有文本?

如果我SelectAllGotFocus事件处理程序调用它,它对鼠标不起作用 - 一旦释放鼠标,选择就会消失.

编辑:人们都喜欢Donnelle的回答,我会试着解释为什么我不喜欢它和接受的答案一样多.

  • 它更复杂,而接受的答案以更简单的方式做同样的事情.
  • 接受答案的可用性更好.当您单击文本中间时,释放鼠标时文本将被取消选中,允许您立即开始编辑,如果您仍想选择全部,只需再次按下按钮,这次它将不会在发布时取消选择.按照Donelle的配方,如果我在文本中间单击,我必须单击第二次才能编辑.如果我单击文本中的某个位置而不是文本外部,这很可能意味着我想开始编辑而不是覆盖所有内容.

.net silverlight wpf textbox

210
推荐指数
13
解决办法
14万
查看次数

将枚举值作为命令参数从XAML传递

我想在WPF中将枚举值作为命令参数传递,使用如下所示:

<Button 
    x:Name="uxSearchButton" 
    Command="{Binding Path=SearchMembersCommand}" 
    CommandParameter="SearchPageType.First"
    Content="Search">
</Button>
Run Code Online (Sandbox Code Playgroud)

SearchPageType 是一个枚举,这是要知道从哪个按钮搜索命令被调用.

这在WPF中是否可行,或者如何将枚举值作为命令参数传递?

.net silverlight wpf xaml command

179
推荐指数
4
解决办法
6万
查看次数

如何分隔StackPanel的子元素?

给定StackPanel:

<StackPanel>
  <TextBox Height="30">Apple</TextBox>
  <TextBox Height="80">Banana</TextBox>
  <TextBox Height="120">Cherry</TextBox>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

即使子元素本身具有不同的大小,将子元素间隔开来以使它们之间存在大小相等的间隙的最佳方法是什么?可以在没有为每个孩子设置属性的情况下完成吗?

silverlight wpf xaml stackpanel

175
推荐指数
5
解决办法
14万
查看次数


这种类型的CollectionView不支持从与Dispatcher线程不同的线程更改其SourceCollection

我有一个DataGrid,它通过异步方法从ViewModel填充数据.我的DataGrid是:

<DataGrid ItemsSource="{Binding MatchObsCollection}"  x:Name="dataGridParent" 
                      Style="{StaticResource EfesDataGridStyle}" 
                      HorizontalGridLinesBrush="#DADADA" VerticalGridLinesBrush="#DADADA" Cursor="Hand" AutoGenerateColumns="False" 
                      RowDetailsVisibilityMode="Visible"  >
Run Code Online (Sandbox Code Playgroud)

我正在使用http://www.amazedsaint.com/2010/10/asynchronous-delegate-command-for-your.html在我的viewmodel中实现异步方式.

这是我的viewmodel代码:

public class MainWindowViewModel:WorkspaceViewModel,INotifyCollectionChanged
    {        

        MatchBLL matchBLL = new MatchBLL();
        EfesBetServiceReference.EfesBetClient proxy = new EfesBetClient();

        public ICommand DoSomethingCommand { get; set; }
        public MainWindowViewModel()
        {
            DoSomethingCommand = new AsyncDelegateCommand(
                () => Load(), null, null,
                (ex) => Debug.WriteLine(ex.Message));           
            _matchObsCollection = new ObservableCollection<EfesBet.DataContract.GetMatchDetailsDC>();                

        }       

        List<EfesBet.DataContract.GetMatchDetailsDC> matchList;
        ObservableCollection<EfesBet.DataContract.GetMatchDetailsDC> _matchObsCollection;

        public ObservableCollection<EfesBet.DataContract.GetMatchDetailsDC> MatchObsCollection
        {
            get { return _matchObsCollection; }
            set
            {
                _matchObsCollection = value;
                OnPropertyChanged("MatchObsCollection");
            }
        }        
        // …
Run Code Online (Sandbox Code Playgroud)

c# silverlight wpf xaml mvvm

129
推荐指数
5
解决办法
8万
查看次数

WPF与Silverlight

可能重复:
WPF和Silverlight应用程序有什么区别?

WPF和Silverlight之间的确切区别是什么?

silverlight wpf

127
推荐指数
2
解决办法
5万
查看次数

TextBox.TextChanged事件在Windows Phone 7模拟器上触发两次

我有一个非常简单的测试应用程序,只是为了玩Windows Phone 7.我刚刚添加了一个TextBox和一个TextBlock标准的UI模板.唯一的自定义代码如下:

public partial class MainPage : PhoneApplicationPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private int counter = 0;

    private void TextBoxChanged(object sender, TextChangedEventArgs e)
    {
        textBlock1.Text += "Text changed " + (counter++) + "\r\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

TextBox.TextChanged事件TextBoxChanged在XAML中连接到:

<TextBox Height="72" HorizontalAlignment="Left" Margin="6,37,0,0"
         Name="textBox1" Text="" VerticalAlignment="Top"
         Width="460" TextChanged="TextBoxChanged" />
Run Code Online (Sandbox Code Playgroud)

但是,每当我在模拟器中运行时按一个键(屏幕键盘或物理键盘,按下Pause以启用后者),它会使计数器递增两次,显示两行TextBlock.我尝试的所有东西都表明这个事件真的发射了两次,我不知道为什么.我已经验证它只被订阅了一次 - 如果我在MainPage构造函数中取消订阅,当文本改变时,根本没有任何事情发生(对于文本块).

我在常规的Silverlight应用程序中尝试过等效的代码,并没有在那里发生.目前我没有手机可以重现这一点.我还没有找到任何关于Windows Phone 7中已知问题的记录.

任何人都可以解释我做错了什么,或者我应该将此报告为错误?

编辑:为了减少这两个文本控件的可能性,我已经尝试TextBlock完全删除,并将TextBoxChanged方法更改为只是增量counter.然后我在模拟器中运行,键入10个字母,然后counter++;在行上放置一个断点(只是为了摆脱闯入调试器导致问题的任何可能性) - 它显示 …

c# silverlight xaml textbox windows-phone-7

90
推荐指数
3
解决办法
1万
查看次数

无法在visual studio 2010 sp1上安装silverlight 4工具

我安装了Visual Studio 2010(全新安装),然后应用了SP1.现在我已经尝试安装silverlight 4工具,但是我收到一条奇怪的错误信息:

"必须先安装与Silverlight Tools 4语言版本匹配的Visual Studio 2010或Visual Web Developer Express 2010或Visual Phone Developer Express 2010,然后才能继续安装Silverlight Tools .Silverlight Tools可以使用其他语言版本. http://go.microsoft.com/fwlink/?LinkId=177432.

必须先安装Visual Studio 2010的Visual Web Developer功能,然后才能继续安装."

我已经三次检查,没有语言冲突.浏览网页时,有些人有同样的错误,但是有一些MSDN帖子说用SP1你不需要安装silverlight工具,因为它们已经与SP1捆绑在一起,但事实并非如此,我不知道在VS中有任何项目模板用于silverlight,并且未安装工具.有任何想法吗??

silverlight visual-studio-2010 visual-studio silverlight-4.0

90
推荐指数
4
解决办法
5万
查看次数

如何在变量值改变时触发事件?

我目前正在使用Visual Studio在C#中创建一个应用程序.我想创建一些代码,以便当变量的值为1时,执行某段代码.我知道我可以使用if语句,但问题是该值将在异步进程中更改,因此从技术上讲,if语句可以在值更改之前被忽略.

是否可以创建事件处理程序,以便在变量值更改时触发事件?如果是这样,我该怎么做?

完全有可能我误解了if语句是如何工作的!任何帮助将非常感激.

c# silverlight event-handling visual-studio windows-phone-7

90
推荐指数
5
解决办法
17万
查看次数