使用转换器看到的标签不起作用,换句话说我搞砸了

时间:2012-05-10 01:02:31

标签: c# wpf

这看起来很尴尬,最糟糕的是一遍又一遍地问同样的问题。

真的很抱歉,但我仍然无法弄明白或没有按预期工作

在我之前的帖子@slugster建议的转换器中,所以使用了如下代码

MyView.xaml

    <UserControl.Resources>
        <!-- Image Buttons -->
        <Converters:BooleanToVisibilityConverter x:Key="visibilityConverter"></Converters:BooleanToVisibilityConverter>
       <!--Label-->
        <Converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"></Converters:BooleanToVisibilityConverter>

 <Label Name="isImageValid"  Content="Image not Created" Margin="0,7,1,0" Style="{StaticResource LabelField}"
                Grid.ColumnSpan="2" Grid.Row="15" Width="119" Height="28" Grid.RowSpan="2"
                Grid.Column="1" IsEnabled="True" 
                Visibility="{Binding isImageValid,Converter={StaticResource BooleanToVisibilityConverter}}" />                

myviewModel.cs

private bool _isImageValid;                  
public bool IsImageValid
{
    get { return _isImageValid; }
    set 
    {
        _isImageValid = value;
        this.RaisePropertyChanged(() => this.IsImageValid);
    }
}

private void OnImageResizeCompleted(bool isSuccessful)
{
    if (isSuccessful)
    {
        this.SelectedStory.KeyframeImages = true;
        _isImageValid = false;
        // isImageValid = System.Windows.Visibility.Collapsed;
    }
    else
        this.SelectedStory.KeyframeImages = false;
}

当我调试代码时,它甚至没有反映在UI中,当“OnImageResizeCompleted”方法调用并且“_isImageValid = False”时。现在我已经丢失了。我知道我收到了很多负面评论但很遗憾我无法做到自己搞清楚。

1 个答案:

答案 0 :(得分:1)

首先,纠正Visibility="{Binding isImageValid...行。您的视图模型属性为IsImageValid

其次,OnImageResizeCompleted()方法不会通知UI有关IsImageValid属性更改的信息,它只是修改了属性支持字段。将_isImageValid = false更改为IsImageValid = false