ExpressionBlendを使用しています。
私が得たとしましょう:
Public string FirstName{get;set;}
編集:答えてくれてありがとう、でも人々は私の質問を理解していなかったのではないかと思います。コードまたはXAMLでデータをバインドする方法を知っています。
私の質問は、Expression Blendインターフェイスを直接記述せずに、これらすべてを実行する方法があるかどうかです。マウスの動きでのみ。
ExpressionBlendを使用しています。
私が得たとしましょう:
Public string FirstName{get;set;}
編集:答えてくれてありがとう、でも人々は私の質問を理解していなかったのではないかと思います。コードまたはXAMLでデータをバインドする方法を知っています。
私の質問は、Expression Blendインターフェイスを直接記述せずに、これらすべてを実行する方法があるかどうかです。マウスの動きでのみ。
実際には、プロパティをビューモデルに配置し、XAMLバインディングを使用する必要がありますが、それは別の話です。
例を説明するときは、最初に「FirstName」プロパティを単純なget / setではなく、Dependencyプロパティとして実装する必要があります。これは、多くの入力を節約するためのShawn Wildermuthの優れたコードスニペットです(スニペットには修正が必要なタイプミスが1つあります-"($ type $)args。NewValue ;"...NewValueの大文字と小文字が間違っています。スニペット)。
XAMLで単純なget/setプロパティにバインドできますが、これは一方向/ 1回限りのバインドであり、変更によって更新されません。
コードでは、バインディングには2つの設定が必要です。
あなたが言及した例では、次のようなコードを使用できます(XamlでmyTextBoxと呼ばれるTextBoxコントロールを想定しています)。
using System.Windows;
using System.Windows.Controls;
namespace BindingCodeTest
{
public partial class BindingCode : UserControl
{
public string FirstName
{
get { return (string)GetValue(FirstNameProperty); }
set { SetValue(FirstNameProperty, value); }
}
// Using a DependencyProperty as the backing store for FirstName.
// This enables animation, styling, binding, etc...
public static readonly DependencyProperty FirstNameProperty =
DependencyProperty.Register("FirstName",
typeof(string),
typeof(BindingCode),
new PropertyMetadata(string.Empty,
new PropertyChangedCallback(OnFirstNameChanged)));
static void OnFirstNameChanged(object sender, DependencyPropertyChangedEventArgs args)
{
// Get reference to self
BindingCode source = (BindingCode)sender;
// Add Handling Code
string newValue = (string)args.NewValue;
}
public BindingCode()
{
InitializeComponent();
myTextBox.DataContext = this;
myTextBox.SetBinding(TextBox.TextProperty, new System.Windows.Data.Binding("FirstName"));
FirstName = "First name"; // Sample change
}
}
}
Blend4の[データ]タブ>[新しいサンプルデータ]>必要に応じてデータソースに名前を付けます。fe'MySampleDataSource'。次に、「MySampleDataSource」には、3つのオプションを備えた「+」ボタン(右側の同じデータタブ)があります。「単純なプロパティの追加」を選択し、「FirstName」という名前を付けます。次に、そのプロパティをTextBoxまたはTextBlockにドラッグします。
結果は次のようになります。
<TextBlock x:Name="firstName" Text="{Binding FirstName}"/>