wpf – 使用UniformGrid的MVVM和数据绑定

wpf – 使用UniformGrid的MVVM和数据绑定,第1张

概述我试图用一些矩形设计 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>

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

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>

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和数据绑定所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1004799.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存