Здесь много странных вещей, но наиболее очевидная вещь, которая заставит вас работать, заключается в том, что путь привязки чувствителен к регистру.
Измените привязку на:
<Binding Path="JobKey" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"/>
Этодолжно заставить работать связывание.
Я также не уверен, какой тип BasePar, или должен быть, но если вы не делаете что-то умное намеренно, просто сделайте его стандартным типом, таким как string.
Возможно, вам также следует использовать не пространство имен System.Workspace
, а что-то, связанное с вашим собственным проектом.
После вашего ответа я могу только догадываться, для чего предназначен объект BasePar,должен использоваться в DataTemplate, например, в элементе ItemsControl.DataTemplates имеют такое поведение, что, когда они не знают, как отобразить объект, они прибегнут к методу .ToString () объекта.
Теперь, в своем комментарии я сказал, что не думаю, что TextBox
может иметь DataTemplate, и я верю, что это правда однако Я нашел трюк в этот вопрос Stackoverflow , в котором вместо шаблонов используется элемент управления контентом и текстовый блок.Код ниже:
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:System.Workspace"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.Resources>
<c:Parameter x:Key="mySource"/>
<DataTemplate x:Key="MyDataTemplate">
<TextBlock Text="{Binding}"/>
</DataTemplate>
</Grid.Resources>
<Canvas>
<Canvas.DataContext>
<Binding Source="{StaticResource mySource}" />
</Canvas.DataContext>
<ContentControl
Content="{Binding Path=JobKey}"
ContentTemplate="{StaticResource MyDataTemplate}" />
</Canvas>
</Grid>
У меня сейчас нет времени, чтобы заставить работать TextBox - даже не знаю, возможно ли это, учитывая мои первые несколько попыток.Тем не менее, это может помочь вам добраться туда, куда вам нужно.
Но все же - если бы я был мной, я бы просто использовал простую привязку к стандартным объектам.Я не вижу преимущества класса BasePar в этом сценарии.