用户控件未在窗口中更新(WPF)

时间:2016-05-04 13:45:20

标签: wpf xaml

有一个UserControl包含如下所示的绑定。

<TextBox Margin="5" Padding="0" IsReadOnly="True" Background="Transparent" BorderThickness="0" TextWrapping="Wrap" IsTabStop="False" FontSize="{DynamicResource TitleFontSize}" Text="{Binding ErrorTitle, Mode=OneWay}" /> 

它由堆栈面板绑定,名称为GenericErrorControl,绑定为

<Visibility="{Binding IsShown, Mode=OneWay, Converter={StaticResource BoolToVis}, FallbackValue=Collapsed}">

以上控件添加到以下视图之一。

<views:GenericErrorControl Grid.Row="8"  DataContext="{Binding GenericErrorControl, Mode=OneWay}" VerticalAlignment="Top/>

问题是用户控件没有出现在窗口之后。在我的viewmodel创建对象中,我设置了IsShown的值,但它没有出现。如果需要任何其他细节,请帮助并告诉我。

1 个答案:

答案 0 :(得分:0)

这意味着绑定失败,即从上面的代码中使用了回退值。

要做的事情:

  1. 确保您的ViewModel继承自基类BindableBase,即它以某种方式实现 INotifyPropertyChanged 接口,并且在属性更改时,会触发 PropertyChanged 事件。

  2. 即您在视图模型中有类似的内容。

    私人布尔_IsShown; 公共布尔IsShown {    得到{return _IsShown; }    set {SetProperty(ref _IsShown,value); } }

  3. 仔细检查转换器或在此处发布代码。