您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> WPF,这个绑定有点怪

WPF,这个绑定有点怪

来源:网络整理     时间:2016/6/8 0:22:40     关键词:wpf

关于网友提出的“WPF,这个绑定有点怪”问题疑问,本网通过在网上对“WPF,这个绑定有点怪”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:WPF,这个绑定有点怪
描述:

本帖最后由 d454ew32 于 2014-10-21 17:15:52 编辑


<>
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    
        
        
    



public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
    public static readonly DependencyProperty CurrentTextBlockProperty = DependencyProperty.Register("CurrentTextBlock", typeof(TextBlock), typeof(MainWindow), new FrameworkPropertyMetadata(null));
    public TextBlock CurrentTextBlock
    {
        get { return (TextBlock)GetValue(CurrentTextBlockProperty); }
        set { SetValue(CurrentTextBlockProperty, value); }
    }
    private void button1_Click(object sender, RoutedEventArgs e)
    {
        this.DataContext = this;
        CurrentTextBlock = new TextBlock() { Name = "textblock1", Background = new SolidColorBrush(Colors.Red), Text = "张三" };
    }  
}

wpf下载,wpf jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,wpf是什么,wpf高级编程,深入浅出wpf,wpf编程宝典,wps,wpf winform,c wpf
上面的代码中,ContentPresenter 的Content属性绑定到CurrentTextBlock属性上,当点击button1之后,在窗体中,ContentPresenter 的Content正确显示了一个TextBlock 。
但是,如果将button1的Content属性也绑定到CurrentTextBlock属性上,如下所示:

<>
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    
        
        
    


单击button1之后,却只有button1的Content显示了TextBlock ,而ContentPresenter 的Content却没有显示TextBlock,如下图:
wpf下载,wpf jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播,wpf是什么,wpf高级编程,深入浅出wpf,wpf编程宝典,wps,wpf winform,c wpf
请问,这是什么原因呢?
解决方案1:

public MainWindow()
    {
        InitializeComponent();
button1.DataContext = this;
ContentPresenter1.DataContext = this;}

这样试试 解决方案2:

一个控件(此处泛指Visual类的派生类)只能有一个VisualParent
想要达到你想的效果,请使用VisualBrush

解决方案3:

测试了,确实存在这样的问题,但是,实际上CurrentTextBlock已经绑定到ContentPresenter 上了


        private void button1_Click(object sender, RoutedEventArgs e)
        {
            this.DataContext = this;
            this.CurrentTextBlock = new TextBlock() { Name = "textblock1", Background = new SolidColorBrush(Colors.Red), Text = "张三" };
            Console.WriteLine((this.ContentPresenter1.Content as TextBlock).Background);
            Console.WriteLine((this.ContentPresenter1.Content as TextBlock).Text);
        }  
//输出
#FFFF0000
张三

把绑定的方法改一下吧

    
        
        
            
                
            

        
    
解决方案4:

一个textBlock只能在一个地方显示,在A地方显示就不能在B地方显示了


以上介绍了“WPF,这个绑定有点怪”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1588234.html

相关图片

相关文章