Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataTemplate中的WPF网格列宽无效_C#_Xaml_Mvvm_Catel - Fatal编程技术网

C# DataTemplate中的WPF网格列宽无效

C# DataTemplate中的WPF网格列宽无效,c#,xaml,mvvm,catel,C#,Xaml,Mvvm,Catel,我有数据窗口和用户控件(不同的视图模型) MyDataWindow.Xaml: <catel:DataWindow.Resources> <DataTemplate DataType="{x:Type viewmodels:MessageViewModel}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="20*"/>

我有
数据窗口
用户控件
(不同的
视图模型

My
DataWindow.Xaml

<catel:DataWindow.Resources>
<DataTemplate DataType="{x:Type viewmodels:MessageViewModel}">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="20*"/>
            <ColumnDefinition Width="80*"/>
        </Grid.ColumnDefinitions>
        <Views:MessageView Grid.Column="1"/>
    </Grid>
</DataTemplate>
</catel:DataWindow.Resources>

<ItemsControl ItemsSource="{Binding Messages}">
消息
ObservableCollection()

UserControl
中的我的内容在运行时动态添加到
DataWindow
。如果
UserControl
中的内容宽度大于WindowWidth ColumnWidth(column1 20*和column2 80*),则不起作用。我只看到网格。列(80*),它的宽度是100*。我做错了什么?
谢谢你的帮助

当元素的大小大于windows大小时,不可能渲染80%的窗口。
要解决此问题,您可以通过删除代码中的“窗口宽度”属性来动态调整窗口大小。

您确定您的
视图:MessageView
了解父
网格
-?感谢帮助!问题是“当一个元素的大小大于窗口大小时,它不可能渲染80%的窗口”,谢谢!添加视图后是否可以重新渲染窗口?如果我重新渲染窗口-它是20和80?是的,当您使用WPF绑定时,如果您的ViewModel实现INotifyPropertyChanged并且您的列表必须是ObservableCollection,请再次更改ViewModel重新渲染器本身。
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>

    <Border Grid.Row="0" Background="Red">
    </Border>

    <Border Grid.Row="1">
        ...
        Content
        ...
    </Border>
</Grid>