小编Teo*_*dor的帖子

WPF验证(IDataErrorInfo)和选项卡聚焦问题

我有一个TextBox实现的对象的属性绑定IDataErrorInfo.我成立Validation.ErrorTemplateTextBox,并能正常工作.问题是我在a上有这些TabControl,如果我将标签更改为另一个标签然后返回到初始标签(其中TextBox),则验证模板不再显示.它看起来像是经过验证的(就像值是正确的),但实际上并非如此.

这是IDataErrorInfo对象 - 请注意,"正确"值是一个长度为2的字符串:

public class Presenter : IDataErrorInfo
{
    public Presenter()
    {
        this.Property = String.Empty;
    }

    public string Property { get; set; }

    public string Error { get { return null; } }

    public string this[string columnName]
    {
        get
        {
             if (columnName == "Property")
             {
                if (this.Property.Length == 2)
                   return null;
                else
                   return "Invalid property length!";
             }
             else return null;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是XAML:

<TabControl …
Run Code Online (Sandbox Code Playgroud)

c# validation wpf tabcontrol idataerrorinfo

12
推荐指数
1
解决办法
5184
查看次数

RelativeSource FindAncestor问题

这是代码:

<GridViewColumn DisplayMemberBinding="{Binding Path=BookId}" Width="100">
    <GridViewColumn.Header>
        <Border BorderBrush="Black">
            <TextBlock Width="{Binding RelativeSource=
                                       {RelativeSource FindAncestor, 
                                       AncestorType={x:Type GridViewColumn}}, 
                                       Path=Width}" Text="ID">
                <TextBlock.ContextMenu>
                    <ContextMenu>item1</ContextMenu>
                </TextBlock.ContextMenu>
            </TextBlock>
            </Border>
    </GridViewColumn.Header>
</GridViewColumn>
Run Code Online (Sandbox Code Playgroud)

基本上我要做的是使标题中的TextBlock遵循整列的宽度.

它不起作用:文本块的宽度始终与内部文本匹配.有什么想法吗?...提前致谢!

wpf binding listview relativesource

5
推荐指数
1
解决办法
2万
查看次数