silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了wpf – 使用UniformGrid的MVVM和数据绑定大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我试图用一些矩形设计 WPF图表的背面.我正在使用MVVM,我需要将矩形统一调整大小.通过Xaml定义时,这适用于固定的“BucketCount”4: <VisualBrush> <VisualBrush.Visual> <UniformGrid Height="500" Width="500" Rows="1" columns="{Binding BucketCount}"> <
我试图用一些矩形设计 WPF图表的背面.我正在使用MVVM,我需要将矩形统一调整大小.通过Xaml定义时,这适用于固定的“BucketCount”4:

<VisualBrush>
  <VisualBrush.Visual>
  <UniformGrid Height="500" Width="500" Rows="1" columns="{Binding BucketCount}">
    <Rectangle Grid.Row="0" Grid.column="0" Fill="#22ADD8E6" />
    <Rectangle Grid.Row="0" Grid.column="1" Fill="#22D3D3D3"/>
    <Rectangle Grid.Row="0" Grid.column="2" Fill="#22ADD8E6"/>
    <Rectangle Grid.Row="0" Grid.column="3" Fill="#22D3D3D3"/>
  </UniformGrid>        
 </VisualBrush.Visual>
<VisualBrush>

如何绑定我的ObservableCollection矩形? UniformGrid上没有“Itemssource”属性.我需要使用ItemsControl吗?如果是这样,我该怎么做?

提前致谢.

解决方法

您可以像这样使用ItemsControl绑定. Itemssource只是一个ObservableCollection< Brush>的简单示例

<VisualBrush>
    <VisualBrush.Visual>
        <ItemsControl x:Name="itemsControl" Itemssource="{Binding MyBrushes}">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid Height="500" Width="500" Rows="1"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Rectangle Fill="{Binding}"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </VisualBrush.Visual>
</VisualBrush>

更新
它适用于我的使用场景,但我可能会在这里遗漏一些东西.这是我尝试过的完整代码.我从两者得到了相同的结果

@H_118_19@mainWindow.xaml

<Grid>
    <Grid.BACkground>
        <VisualBrush>
            <VisualBrush.Visual>
                <ItemsControl x:Name="itemsControl" Itemssource="{Binding MyBrushes}">
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <UniformGrid Height="500" Width="500" Rows="1"/>
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>
                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Rectangle Fill="{Binding}"/>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>
                </ItemsControl>
                <!--<UniformGrid Height="500" Width="500" Rows="1" columns="4">
                    <Rectangle Grid.Row="0" Grid.column="0" Fill="#22ADD8E6" />
                    <Rectangle Grid.Row="0" Grid.column="1" Fill="#22D3D3D3"/>
                    <Rectangle Grid.Row="0" Grid.column="2" Fill="#22ADD8E6"/>
                    <Rectangle Grid.Row="0" Grid.column="3" Fill="#22D3D3D3"/>
                </UniformGrid>-->
            </VisualBrush.Visual>
        </VisualBrush>
    </Grid.BACkground>
</Grid>
@H_118_19@mainWindow.xaml.cs

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        BrushConverter brushConverter = new BrushConverter();
        MyBrushes = new ObservableCollection<Brush>();
        MyBrushes.Add(brushConverter.ConvertFrom("#22ADD8E6") as Brush);
        MyBrushes.Add(brushConverter.ConvertFrom("#22D3D3D3") as Brush);
        MyBrushes.Add(brushConverter.ConvertFrom("#22ADD8E6") as Brush);
        MyBrushes.Add(brushConverter.ConvertFrom("#22D3D3D3") as Brush);
        this.DataContext = this;
    }

    public ObservableCollection<Brush> MyBrushes
    {
        get;
        set;
    }
}

大佬总结

以上是大佬教程为你收集整理的wpf – 使用UniformGrid的MVVM和数据绑定全部内容,希望文章能够帮你解决wpf – 使用UniformGrid的MVVM和数据绑定所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。