不使用XAML进行绑定[WPF]

Hegendroffer

我正在设计一个内部带有256个按钮的应用程序,并使用for循环以C#代码将它们添加到WrapPanel中。XAML代码中未提及这些按钮。我的问题是,当单击其中之一时,我必须使用绑定更改其颜色。我尝试了以下代码,但它不起作用(仅更改按钮的内容):

        private void NewButton_Click(object sender, RoutedEventArgs e)
    {
        Button btn = (Button)sender;

        for (int i = 0; i < counter; i++)
        {
            if (btn.Name == ("Butt" + i))
            {
                btn.Content = "works";
                MyData mydata = new MyData();
                Binding binding = new Binding("Color");
                binding.Source = mydata;
                binding.Source = btn;
                break;
            }
        }
    }

        private int counter = 0;
    public class MyData
    {
        public static Brush _Color = Brushes.Red;
        public Brush Color
        {
            get
            {
                return _Color;
            }
        }
    }
    public MainWindow()
    {

        InitializeComponent();

        int num = number(3);
        List<Button> btnList = new List<Button>();
        for(int i =0; i<(num*num); i++)
        {

            Button button = new Button();

            button.Name = "Butt" + counter;

            button.Content = "New";

            counter++;
            button.Height = 35;
            button.Width = 35;
            button.Click += new RoutedEventHandler(NewButton_Click);
            wp.Children.Add(button);

        }
浅褐色的

如果您要执行的操作是将按钮的背景色绑定到“ MyData”类对象,那么您几乎可以做到了……

首先,创建绑定对象,将源设置为“ mydata”的新实例,然后公开“ Color”属性的路径。

然后,您需要将新的BINDING对象保存到按钮控件中,并告诉它您希望将BackgroundProperty绑定到新创建的绑定。以下对您的代码进行了细微调整。并不是为什么您的方法就是整个项目的目的,但是希望能达到您的预期。

            if (btn.Name == ("Butt" + i))
            {
                btn.Content = "works";
                MyData mydata = new MyData();
                var oBind = new Binding
                {
                    // bind its source to this view model instance
                    Source = mydata,
                    // what property on THE BUTTON do want to be bound to.
                    Path = new PropertyPath("Color")
                };

                btn.SetBinding(BackgroundProperty, oBind);
                btn.DataContext = oBind;
                break;
            }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

不使用XAML进行绑定[WPF]

来自分类Dev

WPF / XAML绑定:使用实际的DataContext

来自分类Dev

使用 INotifyPropertyChanged 的 WPF Xaml 绑定类实例

来自分类Dev

如何对Visibility属性进行简单的XAML(WPF)条件绑定

来自分类Dev

WPF XAML数据绑定

来自分类Dev

不使用实体数据模型向导的WPF数据绑定

来自分类Dev

WPF窗口未使用XAML中的绑定更新

来自分类Dev

wpf使用XAML的数据绑定不起作用

来自分类Dev

WPF xaml:无法使用本地绑定数据

来自分类Dev

在 WPF 中使用 XAML 和绑定创建 DataGrid

来自分类Dev

WPF 无法找到使用参考绑定的源 - xaml

来自分类Dev

如何使用 PowerShell 执行 WPF/XAML 的数据绑定

来自分类Dev

为什么这不使用forEach进行绑定,但是使用for in循环进行绑定?

来自分类Dev

在XAML中使用[“ string”]语法进行数据绑定

来自分类Dev

XAML WPF的绑定/引用方法

来自分类Dev

WPF数据绑定到XAML

来自分类Dev

WPF XAML绑定不会更新

来自分类Dev

WPF Datagrid获取所有选中的行(不使用WPF绑定)

来自分类Dev

使用目标控件中的绑定路径在样式设置器中进行XAML绑定

来自分类Dev

使用MVVM WPF进行数据网格绑定

来自分类Dev

使用模板进行多重绑定时,WPF 标签为空白

来自分类Dev

使用C#和XAML对WPF XAML和Windows RT进行编程

来自分类Dev

XAML中的WPF ListView绑定ItemsSource

来自分类Dev

XAML中的WPF文本块绑定

来自分类Dev

数据绑定到组合框WPF XAML

来自分类Dev

WPF-MVVM-XAML绑定问题

来自分类Dev

WPF xaml DataTrigger绑定不起作用

来自分类Dev

WPF XAML 尝试绑定 DataGrid 列的宽度

来自分类Dev

在RadRichTextBox(WPF)中进行绑定